Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


—обытие и процедура обработки событи€




Ќачало работы в Delphi


¬ид экрана после запуска Delphi несколько необычен (смотри рисунок 1). ¬место одного окна на экране по€вл€ютс€ четыре: главное окно Delphi, окно формы Form1, окно инспектора объектов Object Inspector и окно редактора кода Unit1.pas, которое почти полностью закрыто окном формы.

 

рисунок 1.

 

¬ главном окне Delphi (рисунок 2) находитс€ меню команд Delphi, панель инструментов и палитра компонентов.
ќкно формы Form1 представл€ет собой заготовку (макет) окна разрабатываемого приложени€.

 

–исунок 2

ѕервый проект
ƒл€ демонстрации возможностей Delphi и технологии визуального проектировани€ займемс€ разработкой программы пересчета веса из фунтов в килограммы.

‘орма приложени€
–абота над новым проектом (так в Delphi называетс€ разрабатываемое приложение) начинаетс€ с создани€ стартовой формы - окна, которое по€вл€етс€ при запуске приложени€.

ѕримечание:

ƒиалоговое окно программы, которое открываетс€ во врем€ ее работы на этапе разработки программы, называетс€ формой.

—тартова€ форма создаетс€ путем изменени€ свойств (характеристик) формы Form1. —войства формы определ€ют ее внешний вид: размер, положение на экране, текст заголовка, вид рамки. —войства перечислены на вкладке Properties (—войства) диалогового окна Object Inspector (»нспектор объектов) (рис. 3). ¬ левой колонке наход€тс€ имена свойств, а в правой - их значени€.

 

 

 

–исунок 3. «амена значени€ свойства Caption


ѕри создании формы в первую очередь следует изменить значение свойства Caption («аголовок). ¬ нашем примере надо заменить Form1 на ‘унты-килограммы. ƒл€ этого необходимо щелкнуть мышью поле Caption. ¬ результате в правой колонке, где находитс€ текущее значение (Form1) свойства caption («аголовок), по€витс€ курсор (рис 3). »спользу€ клавишу <Backspase>, удалите Form1 и введите ‘унты-килограммы.
јналогичным образом можно установить значени€ свойств Height и width, которые определ€ют высоту и ширину формы. Ётим свойствам надо присвоить значени€ 185 и 290.

ѕримечание:

–азмер формы и ее положение на экране, а также размер и положение элементов управлени€ на поверхности формы задаютс€ в пикселах, т. е. точках экрана.

–азмер формы можно изменить точно так же, как и размер любого другого окна Windows, т. е. захватом и перемещением (с помощью мыши) границы окна. ѕо окончании перемещени€ границ автоматически измен€тс€ значени€ свойств Height и width. ќни будут соответствовать установленному размеру формы.
ѕри выборе некоторых свойств, например, свойства Color (÷вет), определ€ющего цвет фона формы, справа от значени€ свойства выводитс€ значок стрелка), указывающий на наличие раскрывающегос€ списка. ўелчок на
стрелке раскрывает список допустимых значений свойства, из которого о выбрать нужное значение.
ќбъекты, в том числе и формы, помимо обычных свойств могут иметь и сложные свойства. ѕеред именем сложного свойства стоит значок "плюс". ѕри двойном щелчке на имени сложного свойства раскрываетс€ список уточн€ющих свойств, а значок "плюс" мен€етс€ на "минус".
¬ поле значени€ сложного свойства Font расположена командна€ кнопка с трем€ точками, при нажатии которой по€вл€етс€ стандартное диалоговое окно Windows, позвол€ющее выбрать шрифт и задать его параметры.
Ѕольшинство свойств определ€ют внешний вид формы. —войство Name, определ€ющее им€ формы, используетс€ в программе дл€ управлени€ формой.
¬ табл. 2.1 приведены измененные свойства формы разрабатываемого приложени€ (программы перевода фунтов в килограммы). ќстальные свойства формы оставлены без изменени€ и в таблице не привод€тс€.

 

 

“аблица 1. —войства формы разрабатываемого приложени€ и их значени€

 

 

—войство ќбозначение «начение
»м€ формы Name Form1
«аголовок Caption ‘унты-килограммы
¬ысота Height  
Ўирина Width  
Ўрифт Font.Name Arial
–азмер шрифта Font.Size  

 


¬ табл. 1 приведены значени€ вложенных свойств Name и size сложного свойства Font. ѕеред именем вложенного свойства указываетс€ им€ свойства, его вмещающего.
ѕосле установки значений свойств, перечисленных в табл. 1, форма принимает вид, изображенный на рис. 4.

 

 

–исунок 4.

 

 омпоненты формы
ѕрограмма пересчета веса из фунтов в килограммы должна получить от пользовател€ исходные данные - значение веса в фунтах. ¬ Windows данные с клавиатуры ввод€тс€ в пол€ редактировани€. ѕоэтому в форму надо добавить компонент - поле редактировани€.
¬ Delphi пол€ редактировани€, командные кнопки, пол€ статического текста и прочие элементы управлени€, наход€щиес€ в форме, называютс€ компонентами (компоненты формы). ¬ программе форма и компоненты рассматриваютс€ как объекты. Ётим можно объ€снить то, что окно, в котором наход€тс€ свойства компонентов, называетс€ Object Inspector (»нспектор объектов).
ƒл€ того чтобы добавить в форму компонент, необходимо в палитре компонентов (рисунок 5) выбрать вкладку, щелкнуть пиктограмму нужного компонента, а затем щелкнуть левой кнопкой мыши в той точке формы, где дол-
жен находитьс€ правый верхний угол компонента. ¬ результате в форме €вл€етс€ компонент стандартного размера.

 

 

–ис. 5. ¬кладка Standard палитры компонентов содержит наиболее часто используемые компоненты


ƒл€ того чтобы добавить в форму компонент заданного размера, необходимо после выбора пиктограммы нужного компонента поместить курсор мыши в ту точку формы, где должен находитьс€ левый верхний угол компонента «атем следует нажать левую кнопку мыши и, удержива€ ее нажатой, переместить курсор в точку, где должен находитьс€ правый нижний угол компонента, и отпустить кнопку мыши. ¬ форме по€витс€ компонент нужного размера.
Ќа рис. 6 представлен вид формы после добавлени€ в нее пол€ редактировани€ (Edit1).  омпонент формы, окруженный восемью маленькими квадратиками (маркерами), называетс€ выделенным (маркированным). ƒл€ того чтобы выделить компонент, надо щелкнуть его мышью.

–исунок 6.


—войства маркированного компонента отображаютс€ в диалоговом окне Object Inspector (»нспектор объектов). ¬ табл. 2 перечислены основные свойства компонента - поле редактировани€.


“аблица 2. —войства компонента поле редактировани€

 

—войство ќбозначение
»м€ пол€. »спользуетс€ в программе дл€ доступа к содержимому (тексту) пол€ Name
“екст, наход€щийс€ в поле ввода-редактировани€ Text
–ассто€ние от левой границы пол€ до левой границы формы Left
–ассто€ние от верхней границы пол€ до верхней границы формы Top
¬ысота пол€ Height
Ўирина пол€ Width
Ўрифт, используемый дл€ отображени€ вводимого текста Font
ѕризнак наследовани€ свойств шрифта родительской формы ParentFont

 

 

Delphi предоставл€ет возможность изменить размер компонента и его положение на поверхности формы.
ƒл€ того чтобы изменить положение компонента, необходимо установить курсор мыши на его изображение, нажать левую кнопку мыши и, удержива€ ее нажатой, переместить компонент в нужную точку формы, затем отпустить кнопку мыши. ¬о врем€ перемещени€ компонента Delphi отображает текущие значени€ координат верхнего левого угла компонента (значени€ свойств Left и Tор).
ƒл€ того чтобы изменить размер компонента, необходимо его выделить, установить указатель мыши на один из маркеров, помечающих границу компонента, нажать левую кнопку мыши и, удержива€ ее нажатой, изменить положение границы компонента. «атем отпустить кнопку мыши. ¬о врем€ изменени€ размера компонента Delphi отображает его текущие размеры: высоту и ширину (значени€ свойств Height и width).
—войства компонента так же, как и свойства формы, можно изменить при помощи инспектора объектов. ƒл€ того чтобы свойства требуемого компонента отображались в диалоговом окне Object Inspector (»нспектор объектов), необходимо выделить компонент или выбрать его им€ в раскрывающемс€ списке в верхней части этого окна (пр€мо под заголовком).

¬ табл. 3 приведены значени€ свойств пол€ редактировани€, предназначенного дл€ ввода веса в фунтах.


“аблица 3, «начени€ свойств пол€ редактировани€ (Edit1)

 

—войство (Name) «начение
Text  
Top  
Left  
Height  
Width  

 

 

ѕомимо полей редактировани€ окно формы должно содержать по€сн€ющий текст: краткое информационное сообщение.
“екст, наход€щийс€ в форме, называют меткой. ћетка добавл€етс€ в форму точно так же, как и поле редактировани€. «начок компонента "метка" (буква ј) находитс€ на вкладке Standard (—тандартна€) палитры компонентов (рис. 3). ѕосле того как метка добавлена в форму, можно изменить ее свойства в диалоговом окне Object Inspector (»нспектор объектов).
¬ форму разрабатываемого приложени€ надо добавить две метки. ѕерва€ метка будет представл€ть собой информационное сообщение. ¬тора€ метка предназначена дл€ вывода результата пересчета веса из фунтов в килограммы.
ѕосле добавлени€ меток и установки значений их свойств, форма разрабатываемого приложени€ приобретает вид, представленный на рис. 7

 

 

–исунок 7.

 

 

“аблица 4. «начени€ свойств меток Label1 и Label2

 

—войство (Name) «начение метки Labe1 «начение метки Label2
Caption ¬ведите вес в фунтах и щелкните на <ѕересчет>  
AutoSize false false
Top    
Left    
Height    
Width    
Wordwrap true true
ParentFont true false

 

—войство ParentFont (Ќаследование параметров шрифта родительской формы) метки Label2 имеет значение false. ѕоэтому свойство Font этой метки не наследует значени€ свойства Font "родител€", в данном случае основной формы. Ёто дает возможность установить свойства шрифта метки иные, чем у формы. ” метки Label1 значение свойства ParentFont оставим без изменени€.
≈сли свойство AutoSize (јвтоматический подгон размера) имеет значение true, то Delphi автоматически устанавливает размеры метки в зависимости от количества символов текста метки, используемого шрифта и его размера.
ѕри необходимости расположить текст метки в несколько строк следует свойству AutoSize присвоить значение false и вручную установить значени€ свойств, определ€ющих размер метки.
¬ завершение в форму надо добавить командную кнопку, при щелчке которой будет выполн€тьс€ пересчет веса в фунтах, введенного в поле ввода, в вес в килограммах.
 нопка добавл€етс€ в форму точно так же, как и другие компоненты. ѕиктограмма командной кнопки (в виде кнопки ќ ) находитс€ на вклад Standard (—тандартна€) палитры компонентов. ѕосле добавлени€ командной кнопки в диалоговом окне Object Inspector (»нспектор объект необходимо установить требуемые значени€ ее свойств, которые представлены в табл. 5

 

“аблица 5. «начени€ свойств командной кнопки Button1

 

—войство (Name) «начение кнопки
Caption ѕересчет
Top  
Left  
Height  
Width  

 

 

ќкончательный вид формы разрабатываемого приложени€ пересчета веса из фунтов в килограммы представлен на рис. 8

–исунок

—обытие и процедура обработки событи€

¬ид созданной формы подсказывает, как работает приложение. ќчевидно, что пользователь должен ввести в поле редактировани€ значение веса в фунтах и щелкнуть на кнопку <ѕересчет>. ўелчок на изображении командной кнопки - это пример того, что в Windows называетс€ событием.

—обытие - это то, что происходит во врем€ работы приложени€ в Delphi у каждого событи€ есть им€. Ќапример, щелчок кнопкой мыши - это событие OnClick, двойной щелчок мышью - событие OnDblClick.

 

“аблица 6. —обыти€ Windows

 

—обытие ѕроисходит
OnClick ѕри щелчке кнопкой мыши
OnDblClick ѕри двойном щелчке кнопкой мыши
OnEnter ѕеред тем, как элемент управлени€ действительно получает фокус
OnError  огда элемент контрол€ обнаруживает ошибку и не может вернуть информацию об ошибке вызывающей программе
OnExit Ќепосредственно перед тем, как элемент управлени€ тер€ет фокус
OnKeyDown ѕри нажатии клавиши. —обыти€ OnKeyDown и OnKeyPress - это чередующиес€, повтор€ющиес€ событи€, которые происход€т до тех пор, пока не будет отпущена удерживаема€ клавиша.
OnKeyPress  огда пользователь нажимает клавишу, котора€ генерирует печатаемый символ. ћожет происходить также при одновременном нажатии клавиши печатаемого символа и клавиши <Ctrl>. Ќе происходит при нажатии клавиш <Tab>, <Enter> и клавиш перемещени€ курсора.
OnKeyUp ѕри отпускании нажатой клавиши
OnMouseDown ѕри нажатии кнопки мыши
OnMouseMove ѕри перемещении мыши
OnMouseUp ѕри отпускании кнопки мыши

 

 

–еакцией на событие должно быть какое-либо действие. Ќапример, реакцией на событие OnClick, произошедшее на кнопке <ѕересчет>, должен быть пересчет веса из фунтов в килограммы. ¬ ƒельфи реакци€ на событие реализуетс€ как процедура обработки событи€. “аким образом, задача программиста состоит в написании необходимых процедур обработки событий. ћетодику создани€ подобных процедур рассмотрим на примере процедуры обработки событи€ дл€ командной кнопки.

—начала необходимо выделить объект, дл€ которого создаетс€ процедура обработки событи€. ¬ нашем примере таким объектом €вл€етс€ командна€ кнопка <ѕересчет>. «атем следует выбрать вкладку Events (событи€) диалогового окна Object Inspector. Ќа вкладке будет отображен список событий, которые способен воспринимать маркированный (выделенный) компонент. —писок событий дл€ наше командной кнопки приведен на рисунке 9.

 

–исунок 9.

 

¬ левой колонке вкладки Events перечислены имена событий, на которые может реагировать маркированный объект. ≈сли дл€ событи€ определена процедура обработки, то в правой колонке р€дом с именем событи€ выводитс€ им€ этой процедуры.

ƒл€ того, чтобы создать процедуру обработки событи€, необходимо выполнить двойной щелчок в поле имени процедуры обработки событи€ (т.е. в правой колонке). ¬ результате откроетс€ окно редактора кода Unit1.pas (в ƒельфи) кодом называетс€ текст программы) с шаблоном процедуры обработки событи€ (рисунок 10), который создаетс€ в ƒельфи автоматически.

 

 

–исунок 10.

ƒельфи присваивает процедуре обработки событи€ им€, которое состоит из двух частей. ѕерва€ часть имени идентифицирует форму, содержащую объект, дл€ которого создаетс€ процедура обработки событи€. ¬тора€ часть имени идентифицирует сам объект и событие. ¬ нашем примере им€ формы - Form1, им€ командной кнопки - Button1, а им€ событи€ Click.

¬ окне редактора кода между begin и end можно печатать инструкции €зыка Object Pascal, реализующие процедуру обработки событи€. Ќиже приведен текст процедуры обработки событи€ OnClick дл€ командной кнопки <ѕересчет>:

procedure TForm1.Button1Click(Sender: TObject);
var
f:real; //вес в фунтах
k:real; //вес в килограммах

begin
f:=StrToFloat(Edit1.Text); //перевели содержимое Edit1 в число
k:=f*0.4059;
label2.Caption:=Edit1.text+' фунт(а/ов) это '+
FloatToStr(k)+' килограмм';
end;

[an error occurred while processing this directive]

ѕрограмма получает исходные данные из пол€ редактировани€ Edit1 путем обращени€ к свойству Text. —войство Text содержит строку символов (текст), поэтому в программе дл€ преобразовани€ изображени€ числа в действительное число используетс€ функци€ StrToFloat.

¬ычисленное значение выводитс€ программой в поле метки Label2 путем присвоени€ этого значени€ свойству Caption. ƒл€ преобразовани€ действительного числа в его изображение (текст сообщени€ с результатом пересчета) используетс€ функци€ FloatToStr.

–едактор кода

–едактор кода ƒельфи автоматически выдел€ет ключевые (зарезервированные) слова €зыка программировани€ Object Pascal (begin, end, const, var и другие) полужирным шрифтом, что делает текст программы более выразительным и облегчает воспри€тие структуры программы.

ѕомимо ключевых слов редактор кода выдел€ет комментарии.  ак только программист напечатает символ начала комментари€ (открывающую фигурную скобку - '{'), так текст, сто€щий после этой скобки, изменит свой вид и станет комментарием. ѕри компил€ции комментарии не учитываютс€, они нужны лишь дл€ тех, кто будет просматривать код. ѕосле того как программист введет закрывающую скобку комментари€, текст наход€щийс€ после этой скобки, приобретет обычный вид.





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2016-11-18; ћы поможем в написании ваших работ!; просмотров: 535 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ѕольшинство людей упускают по€вившуюс€ возможность, потому что она бывает одета в комбинезон и с виду напоминает работу © “омас Ёдисон
==> читать все изречени€...

772 - | 595 -


© 2015-2023 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.036 с.