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

7.2. Основные компоненты для размещения изображений

Компонент TShape класса TShape (страница Палитры Компонентов Additional) выводит на экран фигуру (круг, эллипс, прямоугольник и т.п.) и может быть использован для оформления приложения. Помимо унаследованных из класса TGraphicControl, в классе TShape определены свойства:

property Brush: TBrush; определяет кисть для закрашивания поверхности фигуры.

property Pen: ТРеn; определяет карандаш для рисования контура фигуры.

property Shape: TShapeType; определяет фигуру, выводимую на экран: stRectangle – прямоугольник, stSquare – квадрат, stRoundRect – прямоугольник с закругленными краями, stRoundSquare – квадрат с закругленными краями, stEllipse – эллипс, stCircle – круг.

Пример настройки свойств компонента Shape:

procedure TForm1.FormCreate(Sender: TObject);

begin

with Shape1 do begin

Pen.Color:=clRed; // цвет контурной линии

Pen.Style:=psDash; //стиль контурной линии (пунктирная)

Brush.Color:=clWhite; // цвет фигуры

Shape:=stEllipse; // определяется фигура

end;

end;

Событием по умолчанию для компонента Shape является OnDragDrop.

Компонент Image представляет собой контейнер, который может содержать и отображать графический объект.

Помимо наследуемых из класса TGraphicControl, в классе TImage определены следующие свойства:

Picture: TPicture; указывает графический объект, который будет содержаться в компоненте Image. Файл изображения может быть битовой пиктограммой;

Canvas: TCanvas; предназначено для формирования изображения на этапе выполнения программы;

Center: Boolean; изображение помещается в центр компонента, если свойство имеет значение True, иначе – в левом верхнем углу компонента;

property Stretch: Boolean; изображение увеличивается или уменьшается до размеров компонента, если свойство имеет значение True;

Пример построения эллипса в компоненте Image:

procedure TForm1.Button1Click(Sender: TObject);

begin

with Image1 do begin

Canvas.Brush.Color := clRed;

Canvas.Brush.Style := bsDiagCross;

Canvas.Ellipse(0, 0, Image1.Width, Image1.Height);

end;

end;

Во время работы приложения многие объекты на экране изменяют свое состояние. Для отображения изменений на экране необходимо обновление объектов. Обновление (refresh) объектов – это процесс, выполняемый операционной системой для перерисовки окон и компонентов, расположенных внутри окон. Для самостоятельного вызова метода обновления компонента используется метод Refresh. При обновлении объекта генерируется событие OnPaint.

Пример перехвата события обновления формы. При обновлении формы выводится

окно с сообщением.

procedure TForm1.FormPaint(Sender: TObject); // обработчик события OnPaint формы Form1

begin

MessageDlg('Произошло обновление формы', mtInformation,[mbOK],0);

end;

procedure TForm1.Button1Сlick(Sender: TObject); // код обработки события OnСlick

begin

Form1.Refresh; // вызов метода обновления формы

end;

Таймер класса TTimer является невизуальным компонентом и предназначен для инициирования какой-либо операции через заданные промежутки времени. Основные свойства класса TTimer:

property Enabled: Boolean; если свойство имеет значение True, то таймер реагирует на собственное событие OnТimer.

property Interval: Cardinal; определяет временной интервал в миллисекундах, после которого возбуждается событие OnTimer. По умолчанию равно 1000 (1 секунда).

В классе TTimer определено событие ОnТimеr: TNotifyEvent;, которое возникает периодически по истечении интервала времени, определяемого свойством Interval. Оно является событием, используемым по умолчанию.

Пример построения в компоненте Image прямоугольников случайного цвета в случайном месте через случайный интервал времени

procedure TForm1.Timer1Timer(Sender: TObject);

var X,Y: integer;

begin

Randomize;

Timer1.Interval:=Random(1000);

Image1.Canvas.Brush.Color:=Random($ffffff);

X:=Image1.Height; Y:=Image1.Width;

Image1.Canvas.Rectangle(Random(X), Random(Y), Random(X), Random(Y));

end;