Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Основные события формы

Читайте также:
  1. B Основные положения
  2. B. ОСНОВНЫЕ ПРИНЦИПЫ ВСЕХ МЕДИЦИНСКИХ ИССЛЕДОВАНИЙ
  3. C. ОСНОВНЫЕ ПРИНЦИПЫ ВСЕХ МЕДИЦИНСКИХ ИССЛЕДОВАНИЙ
  4. I. ОСНОВНЫЕ ПОЛОЖЕНИЯ О ФЕСТИВАЛЕ.
  5. I. Различия формы
  6. I. Специальные события
  7. II. ОСНОВНЫЕ ЕДИНИЦЫ ГРАММАТИЧЕСКОГО СТРОЯ. РАЗДЕЛЫ ГРАММАТИКИ

OnActivate - пользователь переключается на форму.

OnClick - нажата кнопка мыши на форме.

OnClose - форма закрывается.

OnCreate - форма создается.

OnDestroy -формы разрушается.

OnMouseMove - курсор мыши перемещен.

OnMouseDown - кнопка мыши нажата.

OnMouseUp - кнопка мыши отпущена (отжата).

OnPaint - требуется перерисовка формы.

 

Шаг 4. Теперь создайте вторую форму. Для этого выберите пункт меню File/New Form. Появиться вторая форма. В Инспекторе объектов установите свойство Color для второй формы в значение clYellow. Свойства Caption и Name можете оставить прежними.

Шаг 5. Перетащите на форму компонент TEdit (однострочный редактор текста) из вкладки Standart.

 

Шаг 6. Познакомьтесь с основными свойствами, методами и событиями компоненты TEdit [1-3].

Основные свойства компонента ТEdit

Autosize -если равно true, то высота поля редактора
автоматически подгоняется по высоте текста.

MaxLength -максимальное количество символов, которое можно ввести, если оно равно 0, то можyj ввести текст неограниченной длины.

ReadOnly -если равно true, то нельзя изменить текст в редакторе, а только прочитать.

Text – текст в формате AnsiString, который выводится в поле компоненты.

Основные события компонента ТEdit

OnChange - произошло изменение текста.

OnMouseMove - перемещен курсор мыши.

OnClick - нажата кнопка мыши.

OnKeyPress - нажата клавиши.

 

Шаг 7. В Инспекторе объектов заполните свойство Text пробелами или любым текстом, который должен появляться в редакторе при первом отображении компонента. Для того, чтобы придать компоненту объемный вид установите свойство Ctr3D взначение true. Свойством Color установите желаемый цвет поля компонента.

Шаг 8. Откройте заголовочный файл формы Uint2.h и убедитесь, что после метки __published добавлена строка

TEdit *Edit1;

Запомните, что Edit1 является указателем на созданный объект класса TEdit, является членом класса TForm2 и доступен каждой функции класса TForm2.

Шаг 9. Аналогичным образом перетащите на форму еще одну компоненту TEdit для вывода результата. Установите необходимые значения свойств этого компонента.

 

Откройте заголовочный файл формы Uint1.h и убедитесь, что после метки __published: добавлена строка

TEdit *Edit2;

Запомните, чтоуказатель Edit2 на объекткласса TEdit соответствует полю вывода результата.

Шаг 10. Перетащите на форму компонент TLabel (поясняющий текст) из той же вкладки Standart и расположите компоненту рядом с полем ввода числа. Компонента отображает на форме прямоугольную область статического текста, который нельзя редактировать. В Инспекторе объектов задайте свойству Caption значение “Число”, при этом переведите клавиатуру в режим русского шрифта:

 

Шаг 11. Познакомьтесь с основными свойствами и событиями компоненты TLabel [1-3].

Основные свойства компоненты TLabel:

Align - определяет выравнивания компонента в пределах рабочей области формы. Чтобы можно было изменять размер поля компоненты, оставьте его значение alNone.

Alignment - определяет расположение текста в пределах компонента:

· taLeftJustify - текст прижат к левой границе;

· taRightJustify - к правой границе;

· taCenter - расположен по центру.

Autosize -если значение равно true, то размеры компонента автоматически подгоняются по шири­не и высоте текста.

Caption – определяет текст поясняющей надписи.

Основные события компонента TLabe l:

OnMouseMove - происходит при перемещение курсора мыши.

OnMouseDown - происходит при нажатии кнопки мыши.

OnClick - происходит при нажатии кнопки мышки.

OnDblClick - происходит при двойном нажатии кнопки мышки.

Шаг 12. Аналогичным образом перетащите на форму еще однукомпоненту TLabel и расположите рядом с полем вывода результата. В Инспекторе объектов введите соответствующий текст свойству Caption для этих компонент:

Шаг 13. Обратите внимание на заголовочный файл второй формы. В нем появились две новые строки:

TLabel * Lable1;

TLabel * Lable2;

 

Шаг 14. Сохраните проект командой меню File/ Save Project as.

Шаг 15. Перетащите на форму компонент TButton (простая кнопка) из вкладки Standart и измените ее размеры:

Компонента создает прямоугольную кнопку с надписью. Если нажать на кнопку при выполнении приложения, то возникает событие OnClick, в ответ на которое можно выполнить определенное действие, т.е. вызвать функцию отклика.

Шаг 16. Познакомьтесь с основными свойствами, методами и событиями компоненты TButton [1-3].

Основные свойства компонента TButton:

Cancel - если равно true, то кнопка срабатывает при нажатии <Esc>

Caption -текст, расположенный на кнопке.

Enabled -Если равно true, то кнопка срабатывает при нажатии <Enter>.

Font - определяет тип шрифта надписи на кнопке.

ModalResult -если задать свойству ненулевое значение, то это обеспечит завершение модального окна диалога при нажатии этой кнопки.

Основные события компонента TButton:

OnClick – происходит при нажатии кнопки мышки.

OnEnter – происходит при получении фокуса ввода.

Шаг 17. Откройте заголовочный файл формы Uint1.h и убедитесь, что после метки __published: добавлена строка TButton *Button1;

Шаг 18. В Инспекторе объектов задайте свойству Caption значение “суммировать”:

 
 

 


Шаг 19. Теперь необходимо определить функции отклика на соответствующие события. Начните с отклика на нажатие кнопки на второй форме. Для этого перейдите в Инспекторе объектов на вкладку Events (события):

 

И двойным щелчком левой кнопки мыши на поле OnClick, соответствующего событию нажатия кнопки, откройте функцию отклика в файле Uint2.cpp:

 

Шаг 20. Добавьте следующий код в тело функции отклика:

 

Шаг 21. Рассмотрите назначение и последовательность операторов:

1) Объявите целую переменную статического типа

static int sum=0;

2) Объявите символьный массив

char s[80];

3) Объявите целую переменную

int a;

4) Введите из поля редактора текста с указателем Edit1 текстовую строку, которую необходимо преобразовать к целому числу. Для этого воспользуйтесь знакомой функцией ввода из символьной строки sscanf(), объявленнной в файле stdio.h

sscanf(Edit1->Text.c_str(),"%d",&a);

5) Обратите внимание на запись Edit1->Text.c_str().

Когда компонента перенесена на поле формы, то динамически создается объект класса ТEdit1. Указательнаэтот объектс именем Edit1 передается в приложение и объявляется в заголовочном файле формы Uint2.h после метки __published: TEdit *Edit1;

Указатель Edit1 является член-данным класса TForm2 второй формыи доступен каждой функции класса TForm2, в том числе и функциям отклика. Поскольку объект класса ТEdit1 задается через указатель Edit1, то доступ к членам класса ТEdit1 должен осуществляться через операцию (->). Text является свойством класса ТEdit1, поэтому запись Edit1->Text означает чтение значения этого свойства. Любые изменения текста в поле компоненты Edit1 приведут к изменению значения свойства Text.

Текст читается из поля редактора текста в формате AnsiString. Для того, чтобы его преобразовать к формату обычной символьной строки, необходимо использовать функцию c_str(). Таким образом, запись Edit1->Text.c_str() соответствует значению свойства Text в формате обычной символьной строки.

6) Найдите сумму

sum=sum+a;

7) Выведите сумму в символьную строку s

sprintf(s,"%d", sum);

8) Присвой те значение символьной строки свойству Text

Edit2->Text = s;

Внимание! Не забудьте подключить знакомый файл stdio.h:

Шаг 22. Обратите внимание на то, что объявление функции Button1Click()

void __fastcall Button1Click(TObject *Sender);

вставлено в описание класса TForm1 автоматически.

 

 

Шаг 23. Перейдите к первой форме и добавьте обработчик события OnClick (нажатие любой кнопки мыши). Для этого в Инспекторе объектов щелкните мышью на вкладке Events, а затем на правом поле события OnClick:

 

Откликом на событие должен быть показ второй формы. Для этого нужно вызвать метод формы Show(), если форму необходимо показать немодально, или ShowModal(), если – модально. Добавьте вызов второй формы, как

Form2->Show();

Шаг 24. Теперь необходимо подключить вторую форму к первой. Для этого необходимо подключить заголовочный файл второй формы к файлу Uint1.cpp первой формы. Это можно сделать вручную, добавив строку

#include "Uint2.h"

Кроме того, подключить форму Form2 к форме Form1 можно командой главного меню File | Include Unit Hdr... При этом окно файла Uint1.cpp формы Form1 в редакторе кода должно быть активным. В появившемся диалоговом окне нужно выбрать заголовочный файл Uint2.h, соответствующий подключаемой форме.

В файле Uint1.cpp автоматически добавится необходимая строка:

#include "Uint2.h"

Шаг 25. Теперь для первой формы добавьте обработчик события OnDestroy, соответствующий закрытию главной формы, а, следовательно, и закрытию приложения.

Для корректного закрытия приложения необходимо вызвать функцию Terminate() класса ТАpplication. Для этого в функцию отклика добавьте строку:

Application->Terminate();

Шаг 26. Сохраните проект и запустите приложение на выполнение. Вы увидите главную форму приложения. Щелкните кнопкой мыши на поле формы, чтобы реализовать сценарий работы с приложением. Появится вторая форма приложения. Наберите нужное число, например, 25 в поле первого редактора текста и щелкните мышью на поле кнопки:


 

Шаг 27. Попробуйте изменять значения свойств из приложения. Например, измените цвет поля «Результат». Это можно сделать в конструкторе второй формы, добавив строку

Edit2->Color=clGreen;

 

 

Шаг 28. Запустите приложение на выполнение и, щелкнув мышью на поле первой формы, получите измененную вторую форму:

 

 

Шаг 28. Закройте приложение и для компоненты Edit2 второй формы установите свойство Visible в значение false,

т.е. компонент Edit2 должен быть невидимым при появлении второй формы. Запустите приложение на выполнение и покажите вторую форму, на которой компонент Edit2 не будет показан:

 

Шаг 29. Закройте приложение и измените отклик на нажатие кнопки так, чтобы компонента Edit2 становилась видимой и в ее поле результат появляется только тогда, когда в поле Edit1 набрано число, большее 10. Запустите приложение на выполнение. Если число больше 10, например, 25, то появится компонента Edit2 c результатом. Если число меньше 10, то компонента Edit2 станет опять невидимой:

 

Шаг 30. Добавьте две строки в код функции отклика на нажатие кнопки так, чтобы изменялся шрифт и размер надписи на кнопке, если число больше 10:

Button1->Font->Name="System";

и восстанавливался, если число будет меньше 10:

Button1->Font->Name="MS Sans Serif";

Окончательно функция отклика будет такой:

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

void __fastcall TForm2::Button1Click(TObject *Sender)

{

static int sum = 0;

char s[80];

int a;

sscanf (Edit1->Text.c_str(),"%d",&a);

sum=sum+a;

if (a >= 10)

{

Edit2->Visible = true;

Button1->Font->Name="System";

}

else

{

Edit2->Visible = false;

Button1->Font->Name="System";

}

sprintf (s,"%d",sum);

Edit2->Text = s;

}

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

 

Шаг 31. Запустите приложение на выполнение. Если число больше 10, то шрифт изменится. Если число меньше 10, то шрифт надписи на кнопке восстанавливается. Если ввести значение 7, то результат не появится, но шрифт надписи на кнопке изменится:


Дата добавления: 2015-10-28; просмотров: 170 | Нарушение авторских прав


Читайте в этой же книге: Методические указания. | Decision Cube. | Порядок выполнения работы | Постановка задачи | Выполнение работы | Всплывающее меню | Диалоговые окна открытия и сохранения файла | Проектирование строки состояния | Подсказки на строке состояния | Прокрутка в отдельной прямоугольной области |
<== предыдущая страница | следующая страница ==>
Сохранение файлов проекта| Порядок выполнения работы

mybiblioteka.su - 2015-2024 год. (0.023 сек.)