Главная страница
Навигация по странице:

  • FormActivate

  • ComboBox1Click

  • методичка. метода по ООП для практики. Лабораторная работа 1. Линейный вычислительный процесс 2 Общие теоретические сведения 2 Создание оконного приложения 6


    Скачать 1.1 Mb.
    НазваниеЛабораторная работа 1. Линейный вычислительный процесс 2 Общие теоретические сведения 2 Создание оконного приложения 6
    Анкорметодичка
    Дата11.01.2022
    Размер1.1 Mb.
    Формат файлаdoc
    Имя файламетода по ООП для практики.doc
    ТипЛабораторная работа
    #328342
    страница14 из 19
    1   ...   11   12   13   14   15   16   17   18   19

    7.2. Создание оконного приложения

    Тип AnsiString


    Тип AnsiString является основным строковым классом в Builder.

    Часто используемые методы этого класса: с_str() – преобразование строки AnsiString в массив символов; Delete() – удаление символов, SubString() – копирование подстроки; Pos() – поиск позиции; Length() – определение длины строки.

    Компонента ListBox


    Данная компонента представляет собой список, элементы которого выбираются при помощи клавиатуры или мыши. Список элементов задается свойством Items, методы Add, Delete и Insert которого используются для добавления, удаления и вставки строк, соответственно. Объект Items хранит строки списка. Для определения номера выделенного элемента используется свойство ItemIndex.

    Компонента ComboBox


    Список ComboBox – комбинация списка ListBox и редактора текста Еdit, поэтому практически все свойства аналогичны. Для работы с окном редактирования используется свойство Text, как в Edit, а для работы со списком выбора – свойство Items, как в ListBox. Cуществует пять модификаций компоненты, определяемых ее свойством Style, выбрав в котором модификацию csSimple, раскрываем список, потянув его за нижнюю кромку (захватив ее мышью).

    Компонента-кнопка BitBtn


    Компонента BitBtn расположена на странице Additonal и представляет собой разновидность стандартной кнопки Button. Ее отличие – наличие изображения на поверхности, определяемое свойством Glyph. Кроме того, свойство Kind задает одну из 11 стандартных разновидностей кнопок, нажатие любой из них, кроме bkCustom и bkHelp, закрывает окно и возвращает в программу результат mr*** (например, bkOkmrOk). Кнопка bkClose закрывает главное окно и завершает работу программы.

    Обработка событий


    Обо всех происходящих в системе событиях, таких, как создание формы, нажатие кнопки мыши или клавиатуры и т.д., ядро Windows информирует окна путем посылки соответствующих сообщений. Среда Builder позволяет принимать и обрабатывать большинство таких сообщений. Каждая компонента содержит обработчики сообщений на странице Events инспектора объектов.

    Для создания обработчика события необходимо выделить нужную компоненту, далее на странице Events выбрать обработчик и двойным щелчком кнопкой мыши в белом (пустом) окошке в текст программы будет вставлена соответствующая функция. Например, выделив компоненту Form1 и выбрав обработчик OnActivate, будет вставлена функция …FormActivate(…) { }.

    Каждая компонента имеет свой набор обработчиков событий, однако некоторые из них присущи большинству компонент. Рассмотрим наиболее часто применяемые события:

    OnActivate –форма получает это событие при активации;

    OnCreate – возникает при создании формы (Form), в обработчике события задаются действия, которые должны происходить в момент создания формы;

    OnKeyPress возникает при нажатии клавиши клавиатуры, параметр Key типа WORD содержит ASCII-код нажатой клавиши (Enter имеет код 13, Esc – 27) и обычно используется, когда необходима реакция на нажатие одной из клавиш;

    OnKeyDown – возникает при нажатии клавиши клавиатуры, обработчик этого события получает информацию о нажатой клавише и состоянии клавиш Shift, Alt и Ctlr, а также о нажатой кнопке мыши;

    OnKeyUp – является парным событием для OnKeyDown и возникает при отпускании ранее нажатой клавиши;

    OnClick – возникает при нажатии кнопки мыши в области компоненты, а OnDblClick – при двойном щелчке кнопкой мыши в области компоненты.

    7.3. Пример выполнения задания


    Написать программу подсчета числа слов в строке, содержащей пробелы.

    7.3.1. Создание оконного приложения


    Для ввода строк и работы с ними использовать компоненту ComboBox. Ввод строки заканчивать нажатием клавиши Enter, для выхода использовать кнопку «Close». Панель диалога с результатами программы может иметь вид, представленный на рис. 7.1.

    В тексте программы приведем только функции-обработчики:

    //---------------------------------------------------------------------------

    void __fastcall TForm1::FormActivate(TObject *Sender)

    {

    Form1->ComboBox1->SetFocus(); // Передача фокуса ComboBox1

    }

    //---------------------------------------------------------------------------

    void __fastcall TForm1::ComboBox1KeyDown(TObject *Sender, WORD &Key,TShiftState Shift)

    {

    if (Key == 13) {

    ComboBox1->Items->Add(ComboBox1->Text);

    // Строка из окна редактирования заносится в ComboBox1

    ComboBox1->Text=""; // Очистка окна

    }

    }

    //------------ Обработка нажатия кнопки мыши --------------------

    void __fastcall TForm1::ComboBox1Click(TObject *Sender)

    {

    int n, i, nst;

    nst = ComboBox1->ItemIndex; // Определение номера строки

    String st = ComboBox1->Items->Strings[nst]; // Запись выбранной строки st

    if (st[1] != ' ') n = 1; // Здесь и ниже ' ' – пробел

    else n = 0;

    for(i=1; ist

    if(st[i] == ' ' && st[i+1] != ' ') n++;

    Edit1->Text = IntToStr(n); // Вывод числа слов в Edit1

    }



    Рис. 7.1

    7.3.2. Создание консольного приложения


    Для ввода строки, содержащей пробелы используем функцию gets (см. лаб.раб. №1).

    Текст функции main() может иметь следующий вид:

    #include

    void main()

    {

    int n, i, nst, len;

    char st[81];

    puts(" Input string ");

    gets(st);

    if (st[0] != ' ') n = 1; // Здесь и ниже ' ' – пробел

    else n = 0;

    len = strlen(st);

    for(i=1; i<=len; i++) // Просмотр символов строки

    if(st[i] == ' ' && st[i+1] != ' ') n++;

    printf("\n Words = %d", n); // Вывод количества слов

    puts("\nPress any key ... ");

    getch();

    }
    Результат выполнения представленной программы будет иметь следующий вид:


    1   ...   11   12   13   14   15   16   17   18   19


    написать администратору сайта