Практически закрепить знания и умения использования возможностей среды Delphi для создания кнопок и их свойства
Ход работы
- Создать в своей папке в папке MyPrograms_Delphi папку ПР№6.
- Создать в папке в текстовом редакторе Word файл с именем ПР№6_Властивости_ПИБ, в котором выполнить Завдання1-3.
- Задание 1. Записать свойства формы:
свойство
описание
Name
Caption
Width
Height
Top
Left
Font
Icons
BorderIcons
BorderStyle
bsSingle
bsSizeable
bsDialog
bsNone
bsSizeToolWin
bsToolWindow
Position
poDefault
poDefaultPosOnly
poDefaultSizeOnly
poDesigned
poDesktopCenter
poScreenCenter
WindowState
wsMaximized
wsMinimized
wsNormal
- Задача 2. Записать назначения компонента События:
событие
Действие, происходящее
OnClick
OnDblClick
OnMouseDown
OnMouseUp
OnMouseMove
OnKeyPress
OnKeyDown
OnKeyUp
OnCreate
OnPaint
OnEnter
OnExit
- Задача 3. Записать, что означает каждая команда программы (где s — путь, t — время, v — скорость).
procedure TForm1.Button1Click (Sender: TObject);
var s, t, v: real; begin
s = StrToFloat (Edit1.text) t = StrToFloat (Edit2.text) v = s / t;
label4.Caption: = ‘Скорость V =’ + FloatToStr (v) + ‘км / ч.’;
end.
- Запустить среда Delphi и создать новый проект.
- Задача 4. На форме расположены три кнопки. Записать процедуры, содержащиеся в кнопках 1 и 2. В результате нажатия кнопки 1 ее ширина и высота увеличиваются на пять пикселей. Форма и кнопка 2 не меняют размеров. По мере увеличения кнопки 1 кнопка 2 смещается, а кнопка 3 уменьшается в размерах. Если нажать кнопку 2, описан процесс идет в обратном порядке — кнопка 3 увеличивается, кнопка 1 уменьшается. В результате нажатия на кнопку 3 форма закрывается. результат нажатия на кнопку 1 показано на образце.
- Разместить на форме три кнопки.
- Ширина и высота кнопки (как и других видимых компонентов) определяются параметрами width и height, значения которых можно задавать в ходе проектирования формы растяжением компонентов с помощью мыши или изменением числовых значений в Object Inspector. В нашем случае эти значения следует менять программно. поэтому проведем двойной щелчок мышью на кнопке 1 и впишем воткрытый метод обработки нажатия TForm1.Button1Click такие строки:procedure TForm1.Button1Click (Sender: TObject); beginbutton1.Width = button1.Width + 5; button1.Height = button1.Height + 5; end;
- Запустить программу на выполнение, а затем нажать кнопку 1 — кнопка 1 увеличилась, кнопки 2 и 3 остались без изменений, поскольку никакого кода для управления этими кнопками мы не писали.
- Содержание кнопку 2 справа вниз. За расположение кнопки на форме соответствуют параметры left и top. Их также можно задавать в ходе проектирования формы растяжением компонентов за уголки с помощью мыши или изменением числовых значений в Object Inspector. В нашем случае эти значения следует менять программно.Напомним, что чем больше значение left, тем больше смещается справа компонент на форме. Чем больше top, тем ниже размещается компонент. Вписываем в методTForm1.Button1Click такие строки: button2.Top = button2.Top + 5;button2.Left = button2.Left + 5;
Если теперь запустить программу на выполнение, то при нажатии на кнопку 1 она будет увеличиваться, а кнопка 2 смещаться вправо вниз, при этом кнопка 3 остается на месте без изменений в размерах (рис. 4.15)
- Уменьшим размеры кнопки 3, дописав в метод TForm1.Button1Click такие строки:
button3.Width = button3.Width — 5;button3.Height = button3.Height — 5;Теперь после запуска программы и нажатия на кнопку 1 первые две кнопки ведут себя по-прежнему, а третья уменьшается в размерах (рис. 4.16).
- Осталось только сместить кнопку 3. Как и в случае с кнопкой 2, это достигается программными строками:
button3.Top = button3.Top + 5;button3.Left: -button3.Left + 5;Теперь кнопка 1 ведет себя так, как это описано в самом начале (см. Рис. 4.13).
Метод, который выполняется в результате нажатия на кнопку 2, фактически повторяет действия метода кнопки 1, но меняет все числовые значения в обратном направлении. Другими словами, когда процедура в кнопке 1 увеличивает какой-то параметр, то процедура в кнопке 2 — уменьшает, и наоборот. Подобные операции легко запрограммировать, скопировав содержание кнопки 1 на кнопку 2 и заменив знаки «+» на «-» и наоборот. Очевидно, что для этого будет использован метод TForm1.Button2Click:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
procedure TForm1.Button2Click (Sender: TObject); begin button1.Width = button1.Width - 5; button1.Height = button1.Height - 5; button2.Top = button2.Top - 5; button2.Left = button2.Left - 5; button3.Width = button3.Width + 5; button3.Height = button3.Height + 5; button3.Top = button3.Top - 5; button3.Left = button3.Left - 5; end; |
- Закрытие формы с помощью кнопки 3 осуществляется вызовом процедуры закрытия формы:
123procedure TForm1.Button3Click (Sender: TObject);begin close; End - . Задача решена. Сохраним созданный нами приложение на диске и запустим его на выполнение
Задания для самостоятельной работы
- Записать процедуры, содержащиеся в кнопках 1 и 2. В результате нажатия кнопки 1 ее ширина уменьшается на 6 пикселей за счет увеличения кнопок 2 и 3, а в результате нажатия кнопки 2 все происходит наоборот. нажатием кнопки 3 форма закрывается.
- Записать процедуры, содержащиеся в кнопках 1 и 2. В результате нажатия кнопки 1 она становится шире и выше на 5 пикселей за счет кнопок 2 и 3. Если нажать кнопку 2, все происходит наоборот. нажатием кнопки 3 форма закрывается.
- Записать процедуры, содержащиеся в кнопках 1 и 2. В результате нажатия кнопки 1 она становится шире на 5 пикселей за счет кнопки 3, одновременно увеличивается и кнопка 2. Если нажать кнопку 2, все происходит наоборот. нажатием кнопки 3 форма закрывается.
- Записать процедуры, содержащиеся в кнопках 1 и 2. В результате нажатия кнопки 1 она вместе с кнопкой 2 перемещается в правую часть формы, а кнопка 3 — в левую. Если нажать кнопку 2, все три кнопки возвращаются обратно. Считать, что по ширине кнопки 1 и 3 занимают всю форму (между ними нет просвета). нажатием кнопки 3 форма закрывается.
- Записать процедуры, содержащиеся в кнопках 2 и 3. В результате нажатия кнопки 2 она меняется, как это показано на рисунке. Кнопка 3 занимает место кнопки 2. Если нажать кнопку 3, это перемещение происходит в обратном порядке. нажатием кнопки 1 форма закрывается.
Домашнее задание
- Создать проект, «Свойства формы».В этом проекте мы рассмотреть свойства формы. Для этого на форму установить кнопки (компонент Button) и дать им названия: уменьшить форму, растянуть форму, спрятать кнопки, показать кнопки, а также создать две кнопки для задания цвета формы и форма на весь экран, свернуть окно, закрыть окно.
- Создать форму и разместить компоненты на форме;
- Задать свойства компонентов:
- Форме дать название «Работа с кнопками»
- предоставляем названия кнопкам Button
- Расположите кнопки на форме лучше и задайте им нужные свойства.
- Написать процедуры обработки событий: procedure TForm1.Button1Click (Sender: TObject); begin
Form1.Height = Form1.Height-100; Form1.Width = Form1.Width-50; end;
procedure TForm1.Button2Click (Sender: TObject); begin
Form1.Height = Form1.Height + 200; Form1.Width = Form1.Width + 100; end;
procedure TForm1.Button3Click (Sender: TObject); begin
Button1.Visible = False; Button2.Visible = False; Button3.Visible = False; Button4.Visible = False; Button5.Visible = False; end;
procedure TForm1.Button6Click (Sender: TObject); begin
Button1.Visible = True; Button2.Visible = True; Button3.Visible = True; Button4.Visible = True; Button5.Visible = True; end;
procedure TForm1.Button4Click (Sender: TObject); begin
Form1.Color = clBlue; end;
procedure TForm1.Button5Click (Sender: TObject); begin
Form1.Color = clYellow; end;
procedure TForm1.Button7Click (Sender: TObject); begin
Form1.WindowState = wsMaximized; end;
procedure TForm1.Button8Click (Sender: TObject); begin
Form1.WindowState = wsMinimized; end;
procedure TForm1.Button9Click (Sender: TObject); begin
Close; end;
контрольные вопросы
- Укажите назначение строки кода Рrocedure TForm1.Button1Click (Sender: TObject) ;.
- Событие будет осуществляться при обработке кода Form1.Height = Form1.Height-100 ;?
- Событие будет осуществляться при обработке кода Button1.Visible = True ;?
- Событие будет осуществляться при обработке кода Form1.Color = clYellow ;?
- Событие будет осуществляться при обработке кода Form1.WindowState = wsMaximized ;?