Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_ раб4.doc
Скачиваний:
4
Добавлен:
14.11.2019
Размер:
109.57 Кб
Скачать

Самостоятельная работа

Теперь попробуйте самостоятельно ограничить время видимости остальных фигур. Какие операторы надо для этого поместить в каждую процедуру? Как сделать так, чтобы интервалы для разных фигур были разными?

Листинг программы:

unit UnitMenu;

interface

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:=Ealse;

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_Reсtangle.Visible:=False;

FormMenu.sh_Ellipse.Visible:=False;

FormMenu.Timerl.Enabled:=False;

end;

end.

Самостоятельная работа

Добавьте на форму метку и сделайте так, чтобы одновременно с фигурой рядом с ней отображалось ее название.

Упражнение 2. Изменение цвета.

В этом упражнении вы создадите программу, в которой щелчок по кнопке будет изменять (change) цвет фигуры. Цвет будет выбираться из предложенного списка.

  1. Создайте папку «Изменение цвета». Создайте проект. В Строке заголовка формы запишите название: «Изменение цвета» (свойство Caption). Форме дайте имя FormChColor (свойство Name). Сохраните модуль и проект под именами соответственно UnitChColor и ProjectChColor в папке «Изменение цвета».

  2. Поместите на форму следующие компоненты: TLabel (метка), TComboBox (редактируемый список), TBitBtn (кнопка с графикой), TShape (фигура). Вид формы представлен на рис. 2.

  3. Фигуре дайте имя sh_Figura. Кнопке дайте имя bt_Color. Окну редактируемого списка дайте имя ComboBox__Color.

  4. В свойстве Caption (заголовок) объекта Label1 запишите «Выберите цвет:». В свойстве Items (элементы) для Объекта ComboBoxl запишите названия цветов:

Синий

Красный

Зеленый

  1. В свойстве 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 (если... то... иначе).

  1. Сохраните изменения и запустите программу.

  2. Если кнопка работает правильно, то перейдем к созданию следующей части программы. С помощью следующей группы компонентов вы будете изменять тип фигуры. Поместите на форму следующие компоненты: метку TLabel, редактируемый список TComboBox, кнопку TBitBtn.

  3. В свойстве Caption (заголовок) объекта Label2 запишите: «Выберите фигуру:». В свойстве Items (элементы) для объекта ComboBox2 запишите названия фигур:

Круг

Эллипс

Прямоугольник

  1. В свойстве Caption (заголовок) для кнопки BitBtn2 запишите «Применить». Дайте кнопке имя bt_Figura. Дайте окну редактируемого списка имя ComboBox_Figura.

  2. Для кнопки 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;

  1. Сохраните изменения. Запустите программу и убедитесь, что кнопка работает правильно. Вы видите, что изображение круга и эллипса не отличаются друг от друга. Чтобы изображения этих фигур были разными, надо внести некоторые изменения в процедуру для кнопки bt_Figura:

if ComboBox__Figura . Text= ' Эллипс ' then

begin

sh_Figura.Shape:=stEllipse;

sh_Figura.Left:=180;// расстояние от левой границы окна уменьшить

sh_Figura.Width:= 125; // ширину фигуры немного увеличить

end;

Так как добавились еще два оператора, то все операторы заключаются в операторные скобки begin...end (начало...конец). Операторы разделяются «точкой с запятой». Во втором операторе присвойте расстоянию фигуры от левой границы окна значение, немного меньшее того, что было первоначально (см. свойство Left (слева) объекта sh_Figura). Это необходимо для того, чтобы фигура не «съехала вправо» при изменении ее ширины. В третьем операторе присвойте ширине фигуры значение немного большее того, что было первоначально (см. свойство Width (ширина) объекта sh_Figura).

Рис.3. Окно формы «Изменение цвета»

  1. Можно попробовать изменять размеры фигуры, добавив на форму еще три компонента: TLabel (метка), TComboBox (редактируемый список), TBitBtn (кнопка с графикой). Для выбора размера фигуры вы можете использовать не редактируемый список, а другие компоненты.