Урок 9 - События. Программное изменение свойств
В этом уроке я расскажу, что такое событие, реакция на событие и мы научимся программно изменять свойство компонентов.
Создаем новый проект, на форму кидаем компонент Button с закладки Standard.
Все свойства, выделенного компонента находятся в Object Inspector на вкладке 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 они нужны для того, что бы складывать значения в числовом формате.
Если бы мы их не использовали и прибавляли бы единицу в строковом виде, то получилась бы длинная цепочка из единиц.
Идем далее и следующие свойство формы, которое мы рассмотрим называется 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.