Interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, ExtCtrls;
type
TFormMenu = class(TForm)
MainMenul: TMainMenu;
Figures: TMenuItem;
Circle: TMenuItem;
Rectangle: TMenuItem;
Ellipse: TMenuItem;
Shape1: TShape;
Shape2: TShape;
Shape3: TShape;
Timerl: TTimer;
procedure CircleClick(Sender: TObject);
procedure CircleClick(Sender: TObject);
procedure EllipseClick(Sender: TObject);
procedure TimerlTimer(Sender: TObject); private
{ Private declarations } public
( Public declarations ) end;
var
FormMenu: TFormMenu;
Implementation
{$R *.DFM)
procedure TFormMenu.CircleClick (Sender: TObject); begin
FormMenu.sh_Circle.Visible:=True;
FormMenu.sh_Rectangle.Visible:=False;
FormMenu.sh_Ellipse.Visible:=False;
FormMenu.Timerl.Enabled:=True;
FormMenu.Timerl.Interval:=3000; end;
procedure TFormMenu.RectangleClick(Sender: TObject); begin
FormMenu.sh_Rectangle.Visible:=True;
FormMenu.sh_Circle.Visible:=False;
FormMenu.sh_Ellipse.Visible:=False;
FormMenu.Timerl.Enabled:=True ;
FormMenu.Timerl.Interval:=2000; end;
procedure TFormMenu.EllipseClick(Sender: TObject); begin
FormMenu.sh_Ellipse.Visible:=True;
FormMenu.sh_Rectangle.Visible:=False;
FormMenu.sh_Circle.Visible:=False;
FormMenu.Timerl.Enabled:=True;
FormMenu.Timerl.Interval:=1000; end;
procedure TFormMenu.TimerlTimer(Sender: TObject); begin
FormMenu.sh_Circle.Visible:=False;
FormMenu.sh_Rectangle.Visible:=False;
FormMenu.sh_Ellipse.Visible:=False;
FormMenu.Timerl.Enabled:=False ; end;
end.
Добавьте на форму метку и сделайте так, чтобы одновременно с фигурой рядом с ней отображалось ее название.
Упражнение Изменение цвета
В этом упражнении вы создадите программу, в которой щелчок по кнопке будет изменять (change) цвет фигуры. Цвет будет выбираться из предложенного списка.
Создайте папку «Изменение цвета». Создайте проект. В Строке заголовка формы запишите название: «Изменение цвета» (свойство Caption). Форме дайте имяFormChColor (свойствоName). Сохраните модуль и проект под именами соответственноUnitChColor иProjectChColor в папке «Изменение цвета».
Поместите на форму следующие компоненты: TLabel (метка),TComboBox (редактируемый список),TBitBtn (кнопка с графикой),TShape (фигура). Вид формы представлен на рис. 4. Фигуре дайте имяsh_Figura. Кнопке дайте имяbt_Co-lor. Окну редактируемого списка дайте имяComboBox_Color.
В свойстве Caption (заголовок) объектаLabell запишите «Выберите цвет:». В свойствеItems (элементы) для ОбъектаComboBoxlзапишите названия цветов:
Синий
Красный
Зеленый
В свойстве Caption (заголовок) для кнопкиbt_Color запишите: «Применить».
Теперь для кнопки надо записать процедуру изменения цвета Фигуры:
if ComboBox_Color.Text='Синий' then
sh_Figura.Brush.Color:= clBlue
else
if ComboBox_Color.Text='Красный' then
sh_Figura.Brush.Color:= clRed
else
if ComboBox_Color.Text='Зеленый ' then
sh_Figura.Brush.Color:= clGreen;
При написании процедуры, как и в предыдущем упражнении, используется условное предложение if...then...else (если... то... иначе).
Сохраните изменения и запустите программу. Если кнопка работает правильно, то перейдем к созданию следующей части программы.
С помощью следующей группы компонентов вы будете изменять тип фигуры.
Поместите на форму следующие компоненты: метку TLabel, редактируемый списокTComboBox, кнопкуTBitBtn.
В свойстве Caption (заголовок) объектаLabel2 запишите: «Выберите фигуру:». В свойствеItems (элементы) для объектаComboBox2 запишите названия фигур:
Круг
Эллипс
Прямоугольник
В свойстве Caption (заголовок) для кнопкиBitBtn2 запишите «Применить». Дайте кнопке имяbt_Figura. Дайте окну редактируемого списка имяComboBox_Figura.
Для кнопки bt_Figura надо записать процедуру:
if ComboBox_Figura.Text='Kpyr' then
sh_Figura.Shape:=stCircle
else
if ComboBox_Figura.Text='Эллипс' then
sh_Figura.Shape:=stEllipse
else
if ComboBox_Figura.Text='Прямоугольник' then
sh_Figura.Shape:=stRectangle;
Сохраните изменения. Запустите программу и убедитесь, что кнопка работает правильно. Вы видите, что изображение круга и эллипса не отличаются друг от друга. Чтобы изображения этих фигур были разными, надо внести некоторые изменения в процедуру для кнопки bt_Figura:
if ComboBox_Figura.Text='Эллипс' then begin sh_Figura.Shape:=stEllipse; sh_Figura.Left:=180;
// расстояние от левой границы окна уменьшить sh_Figura.Width:=125;
// ширину фигуры немного увеличить end; Так как добавились еще два оператора, то все операторы заключаются в операторные скобкиbegin...end (начало...конец). Операторы разделяются «точкой с запятой».
Рис. 4. Окно формы «Изменение цвета»
Во втором операторе присвойте расстоянию фигуры от левой границы окна значение, немного меньшее того, что было первоначально (см. свойство Left (слева) объектаsh_Figura). Это необходимо для того, чтобы фигура не «съехала вправо» при изменении ее ширины. В третьем операторе присвойте ширине фигуры значение немного большее того, что было первоначально (см. свойствоWidth (ширина) объектаsh_Figura).
Можно попробовать изменять размеры фигуры, добавив на форму еще три компонента: TLabel (метка),TComboBox (редактируемый список),TBitBtn (кнопка с графикой).
Для выбора размера фигуры вы можете использовать не редактируемый список, а другие компоненты.
Теперь создайте программу, в которой цвет фигуры будет выбираться из Палитры цветов, которая откроется при щелчке на кнопке «Выбрать цвет фигуры».
Рис. 5. Окно формы «Изменение цвета 2»
Создайте проект. В Строке заголовка формы запишите название: «Изменение цвета 2» (свойство Caption). Форме дайте имяFormChColor2 (свойствоName). Сохраните модуль и проект подименами UnitСо1ог2 иProjectChColor2 соответственно в папке «Изменение цвета». Разместите на форме следующие компоненты:TBitBtn (кнопка с графикой) иTShape (фигура) со страницыAdditional (дополнительные) иTColorDialog (диалог цвета) со страницыDialogs (диалоги). Назовите кнопку «Выбрать цвет фигуры» и запишите в обработчике щелчка на ней следующий код:ifColorDialog1.Executethen
Shapel.Brush.Color:=ColorDialogl.Color;
Если в диалоговом окне выбран цвет для объекта Shapel, то цвету фигурыShapel присваивается значение, выбранное в диалоговом окне.
Сохраните изменения и запустите программу. Попробуйте изменить цвет вашей фигуры.