Урок 9 - События. Программное изменение свойств

  В этом уроке я расскажу, что такое событие, реакция на событие и мы научимся программно изменять свойство компонентов. Создаем новый проект, на форму кидаем компонент Button с закладки Standard. Все свойства, выделенного компонента находятся в Object Inspector на вкладке Events. Выделяем форму и переходим к списку ее событий.

Events


Список довольно большой и по этому мы рассмотрим самые важные события.

Событие OnClick. Вы уже знакомы с этим событием из прошлых уроков и знаете, что оно происходит тогда, когда мы нажимаем на ЛКМ один раз.

Далее событие OnCreate, оно возникает тогда, когда форма только начинает создаваться. Формы еще нет на экране, а событие уже произошло.

Событие OnDblClick, это событие похоже на OnClick, только нажать на ЛКМ нужно 2 раза (двойной клик).

Событие OnKeyDown. По названию можно понять, что оно происходит, когда пользователь нажимает на клавишу клавиатуры.

Событие OnKeyUp, схоже с событием OnKeyDown, только в этом случае клавиша отпускается.

Событие OnMouseDown, оно происходит при нажатии на левую кнопку мыши, на правую и на колёсико.

Событие OnMouseUp тоже самое что и OnMouseDown, только в этом случае кнопка отпускается.

Следующие событие OnMouseMove, оно происходит тогда, когда мы двигаем мышку в зоне данного компонента. Давайте попробуем поработать с этим свойством. Для этого нам нужно добавить компонент Label с вкладки Standard на форму и изменить его свойство Caption на 0. Теперь выделяем компонент Button и находим там свойство OnMouseMove, щелкаем по нему 2 раза и Delphi создаст процедуру Button1MouseMove. В этой процедуре между ключевыми словами Begin и end пишем код:
label1.Caption:=IntToStr(StrToInt(Label1.Caption)+1);
Объясняю что будет происходить. Когда мы водим мышкой по кнопке, выполняется событие OnMouseMove. В этом событии мы присваеваем свойству Caption у лейбла значение на единицу больше чем было. Первоначально у нас в лейбле стоит ноль, когда мы водим по кнопке, то прибавляется к нулю единица, потом дальше шевелим мышку и уже к единице прибавляется еще одна единица и так далее. Вы наверное заметили, что в коде присутствуют функции IntToStr и ей обратная StrToInt они нужны для того, что бы складывать значения в числовом формате.

Button1MouseMove


Если бы мы их не использовали и прибавляли бы единицу в строковом виде, то получилась бы длинная цепочка из единиц.

Идем далее и следующие свойство формы, которое мы рассмотрим называется OnResize оно возникает при изменении размера формы. Кликаем по этому событию и заполняем процедуру всё тем же кодом.
label1.Caption:=IntToStr(StrToInt(Label1.Caption)+1);
Теперь компилируем программу и наводим мышь на уголок формы. Теперь изменяем размер и видим, что событие происходит и выполняется код, который мы там написали.

С рассмотрением основных событий мы закончили, теперь давайте научимся изменять свойства компонентов программно. В событии кнопки OnClick пишем код:
form1.caption:='Programm';
Этот код изменит заголовок формы после нажатия на кнопку. Как вы видите, сначала пишется имя компонента (в данном случае форма), далее через точку его свойство и через оператор присваивания пишется сам заголовок в кавычках, так как свойство Caption имеет строковый тип.

Далее давайте программно изменим ширину формы, кликом по кнопке.
procedure TForm1.Button1Click(Sender: TObject);
begin
form1.width:=500;
end;
Я думаю вы поняли, как программно изменять свойства компонентов. Экспериментируйте и всё получится :)

Ну вот и всё! Удачи!
Встретимся в следующем уроке!




Добавил(а): Admin Дата: 2012-08-08
Я расскажу об этом в следующих уроках.



Добавил(а): Programer Дата: 2012-08-07
А как сделать так что бы при нажатие кнопки Enter кнопка Button1 реагировала на данную команду?



Добавил(а): Programer Дата: 2012-08-10
OK



Добавил(а): delfiSkin Дата: 2013-05-19
Идем далее и следующие свойство формы, которое мы рассмотрим называется OnResize оно возникает при изменении размера формы. Кликаем по этому событию и заполняем процедуру всё тем же кодом. 1 label1.Caption:=IntToStr(StrToInt(Label1.Caption)+1); Теперь компилируем программу --------------------------------------------- при выполнении закрывается обжест испектор и ошибка вылетает странная..(не в программе) а вообще


    No results found.
Отменить.