Кодирование процедур событий

В Delphi производится управление событиями т.е. в программе не выполняются команды строка за строкой, а система ждет , когда произойдет какое-либо событие и тогда выполняется код, ассоциированный с этим событием (events).

Примеры событий:

· Щелчок на кнопке

· Перемещение указателя мыши

· Выбор элемента меню

· Распечатка документа и т.д.

При двойном щелчке по компоненту на форме происходит переход в Code Editor (редактор кода), в котором автоматически создается процедура события, связанная с данным компонентом. Например, для кнопки Button1 будет создано следующее:

Procedure Tform.Button1Click(Sender:Tobject);

Begin

end;

Любой код, добавленный между операторными скобками begin – end, будет выполняться при щелчке по кнопке.

Работа с диалоговыми окнами

Для извлечения результатов пользовательского ввода используется функция InputBox.

Пример использования функции InputBox

1. Закрыть предыдущее приложение и в меню File выполнить команду New Application, которая создаст новую пустую форму.

2. На форму из палитры компонентов со страницы Standart добавить кнопку Button.

3. Дважды кликнутьпо кнопке и в Code Editor (редактор кода) набрать следующее:

Procedure Tform.Button1Click(Sender:Tobject);

Var

r:string;

Begin

r:=InputBox(‘Добро пожаловать в мою программу’,’Введи свое имя’,’’);

ShowMessage(r );

end;

4. F9.

Переменная r содержит ответ, введенный пользователем.

Функция InputBox состоит из 3 частей:

1. Содержимое первых апострофов – заголовок диалогового окна.

2. Содержимое вторых апострофов – фактическая подсказка для пользователя.

3. После второй запятой – комплект апострофов ‘’ – это пустая строка, которая является местом, куда можно поместить значение по умолчанию для переменной отклика r.

 
 
Кодирование процедур событий - student2.ru

Добавление комментариев

Два способа:

1. { } – содержимое неограниченно по емкости и может располагаться на нескольких строках;

2. //- комментарии только на одной строке после кода.

Работа с типами данных

Таблица базовых типов данных

Òèï Äèàïîçîí Ðàçìåð â áàéòàõ
Boolean 1 áàéò
Byte îò 0 äî 255
Char 1 áàéò
Comp îò –263 äî 263-1
Currency îò –922337203685477,5805 äî 922337203685477,5807
Double îò 5,0*10-324 äî 1,7*10308
Extended îò 3,4*10-4932 äî 1,1*104932
Integer îò-2147483648 äî 2147483647
LongInt îò-2147483648 äî 2147483647
Real îò 2,9-10-39 äî 1,7*1038
ShortInt îò –128 äî 127
Single îò –1,5*10-45 äî 3,4*1038
String äî 4 Ãá Переменный
Word îò 0 äî 65535


Îñíîâû ðàáîòû ñ êîìïîíåíòàìè

Каждая закладка в палитре компонентов содержит отдельную категорию объектов. Страница Standart содержит элементы управления, наиболее часто используемые.

Использование меток (Label)

Компонент Label (метка) используется для отображения подсказки или сообщения пользователю. При этом содержимое метки нельзя изменять в процессе работы программы.

 
 
Правило: любой компонент из палитры добавляется в форму двойным щелчком по нему мышкой.

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

Компонент Edit

Данный компонент обеспечивает ввод информации от пользователя (располагается в Standart). Свойство Text компонента извлекает значение, которое вводит пользователь. Например:

Procedure Tform.Button1Click(Sender:Tobject);

Var

s:string;

Begin

s:=Edit1.Text;

ShowMessage(‘Ваше сообщение-‘+s );

end;

 
 
Кодирование процедур событий - student2.ru

Предварительно на форму надо ввести одну кнопку и один Edit.

Для очистки исходной информации используется команда:

Edit1.Text:=’’;.

Свойства компонента Edit

1. MaxLength определяет максимальное количество символов, которые можно ввести в Edit. При вводе большего количества подается звуковой сигнал.

2. PasswordChar – при установке этого свойства в отличное от значения по умолчанию, элемент управления будет подавлять отображение набранных символов и показывать только символ из этого свойства.

Установка порядка обхода

Порядок обхода - это порядок, в котором компоненты в форме получают фокус при нажатии клавиши табуляции.

Delphi автоматически устанавливает порядок обхода в сответствии с порядком добавления в форму элементов управления.

Есть 2 способа настройки порядка обхода компонентов.

1. При использовании Object Inspector можно установить свойство TabOrder каждого компонента. Причем 1-ый элемент имеет номер 0.

2. Щелком правой кнопкой мыши на каком-либо компоненте и выборе команды TabOrder (или из меню Edit). Затем в отдельном окне появляется список компонентов в порядке добавления в форму, который можно изменить стрелками.

Пример Button

Задание: Построить форму с шестью кнопками с модификацией их свойств на этапе выполнения. При этом щелчок по кнопке будет изменять свойство другой кнопки.

· Откроем новый проект и сохраним его. Модуль описания - Button_ Un. Pas через меню File команду Save as.., проект - Button_ Pr. DPE через меню File команду Save Project as …

· Выбирем компонент - кнопку

а) Можно отбуксировать компонент в форму.

б) При нажатой кнопке Shift кликнуть в палитре по Button. Компонент станет выбранным, что покажет небольшая рамка вокруг него.

· Cоздадим несколько экземпляров этого компонента ( 6 экз ), путем кликания левой кнопкой мыши внутри формы.

Теперь приступаем к установке свойств 6-ти кнопок.

· Присвоим форме имя ButtonForm ( в Object Inspector / Name )

· Ввести ButtonForm .

Теперь надо установить заголовки для кнопок (т. е. текст внутри кнопок)

Считаем а) что кнопка 1 отключает кнопку 4 и назовем ее &1: Disable 4 .

Warning ! Каждая кнопка имеет подчеркнутую горячую клавишу ( в нашем случае будем считать, что это - номер кнопки ) .

Cимвол имперсанта ( & ) - помещенный перед заголовком (например: &1:Disable4), позволяет создать кнопки, которые может использовать клавиатура .

Для этого надо обработать свойство OnClick каждой кнопки.

Cамый простой код будут иметь кнопки 2 и 4. Кнопка 2 копирует свой шрифт (не стандартный ) в кнопку 1, а затем отключает себя :

· Нажимаем на форме поле кнопки 2;

· В Object Inspector входим в Events / On Click и дважды кликаем. Происходит переход в текст редактора, где следует набрать ; например:

Procedure TButtonForm.Button2Click(Sender:TObject);

Begin

Button1.Font: =Button2.Font;

Button2.Enabled: =False;

end;

Кнопка 4 восстанавливает исходный шрифт кнопки 1, где вместо прямого копирования шрифта можно назначить ей шрифт формы, используя свойство ParentFont кнопки. Это событие также включает кнопку 2 , после чего она опять готова к изменению шрифта кнопки 1;

· На форме кликаем кнопку 4.

· В Object Inspector / Events / OnClick дважды нажимаем OnClick и в редакторе текста набираем :

Procedure TButtonForm.Button4Click ( Sender : Tobject );

Begin

Button1.ParentFont : =True;

Button2.Enabled : = True;

end;

Чтобы операции отключения и сокрытия для кнопок 1 и 5 нужна переменная логического типа Boolean, в которой будет храниться текущее состояние.

Есть и другой способ:

Будем решать , какую операцию следует выполнять на основе анализа текущего состояния кнопки. Мы запишем код, где методы этих двух кнопок используют два разных подхода.

· На форме кликнем по кнопке 1

· В Object Inspector / Events дважды кликнуть по OnClick и перейти в редактор и набрать следующее :

Procedure TButtonForm.Button1Click ( Sender : T Object );

Begin

Наши рекомендации