Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯПВУ.Delphi.doc
Скачиваний:
17
Добавлен:
11.04.2015
Размер:
3.25 Mб
Скачать
    1. Примеры использования свойств и методов класса tCanvas

Заполнение формы разноцветными точками.

procedure TForm1.FormPaint(Sender: TObject);

var i,j: integer;

begin

for i:=0 to Width-1 do

f

Рисунок 6 Заполнение формы разноцветными точками

or j:=0 to Height-1 do

Canvas.Pixels[i,j]:=i*j;

end;

Рисование отрезка с координатами начала и конца (10, 10) и (20, 20) толстой сплошной линией красного цвета.

begin

C

Рисунок 7 Рисование отрезка

anvas.Pen.Color:=clRed;

Canvas.Pen.Width:=10;

Canvas.MoveTo(10,10);

Canvas.LineTo(20,20);

end;

Рисование прямоугольника с координатами (20,30) и (80,100) синей пунктирной линией с заливкой красного цвета.

begin

Canvas.Pen.Color:=clBlue;

Canvas.Pen.Width:=1;

Canvas.Pen.Style:=psDash;

Canvas.Brush.Color:=clRed;

C

Рисунок 8 Рисование прямоугольника

anvas.Rectangle( 20,30,80,100);

end;

Рисование окружности с центром в (100, 100) и радиусом 50 белой точечной линией со штрихованной заливкой синего цвета.

with Canvas do begin

pen.Color:=clWhite;

Pen.Width:=1;

Pen.Style:=psDot;

Brush.Color:=clBlue;

Brush.Style:=bsCross;

Ellipse(100-50,100-50,100+50,100+50);

e

Рисунок 9 Рисование окружности

nd;

Рисование замкнутой ломаной линии (пятиугольной звезды)

Canvas.Pen.Color := clWhite;

Canvas.Polyline([Point(40, 10), Point(20, 60), Point(70, 30),

Point(10, 30), Point(60, 60), Point(40, 10)]);

Рисование верхней четверти окружности (эллипса)

Canvas.Arc(10, 10, 100, 100, 100, 10, 10, 10);

  1. Использование визуальных компонентов

Визуальные компоненты представляют собой элементы, из которых конструируется интерфейс работающего приложения. Однако существует значительное количество компонентов, которые не создают видимого изображения, но тем не менее играют важную роль в программной реализации приложения. Правильнее думать о компонентах как о заранее приготовленных фрагментах программы, которые можно вставлять, если в этом есть необходимость, в разрабатываемую программу. В этом разделе приводится начальный обзор компонентов, который дает самое общее представление о богатстве возможностей Delphi. Библиотеки компонентов для разных версий Delphi строятся по принципу расширения: в первой версии было около 70 компонентов, в то время как в состав Delphi 6 входит более 300 компонентов. Ниже компоненты группируются по функциональному признаку, приводятся их краткие описания.

    1. Метки

Метки предназначены для размещения на форме различного рода текстовых надписей. Для этого служит центральное свойство компонента –Caption. С помощью свойства Font можно разнообразить вид надписи. С меткой может быть связан оконный управляющий элемент, который выбирается при нажатии Alt+Буква, где Буква - выделенная подчеркиванием буква в тексте метки (такие символы в терминологии Windows называются акселераторами). Визуальные компоненты TLabel (закладка Standart на Палитре компонентов) и TStaticText (закладка Additional) являются примерами меток. Класс TLabel является потомком класса TControl и обладает всеми свойствами этого класса. В отличие от TLabel класс TStaticText в качестве предка имеет класс TWinControl. Приведем характерные свойства метки, которые совпадают для обоих классов.

Таблица 12 свойства TLabelиTStaticText

Transparent

Логическое свойство, определяющее прозрачность фона метки. Если False, фон закрашивается собственным цветом Color, в противном случае используется фон родительского компонента

Wordwrap

Логическое свойство, разрешающее (запрещающее) разрыв строки на границе слова.

FocusControl

Содержит имя оконного компонента, который связан с меткой-акселератором

ShowAccelChar

Если содержит True, то символ & в тексте метки предшествует символу-акселератору

Layout

Определяет выравнивание текста по вертикали относительно границ метки: tlTop – текст располагается вверху; tlCenter – текст центрируется по вертикали; tlBottom – текст располагается внизу

Для TStaticText определено свойство BorderStyle, которое определяет тип границ компонента: sbsNone нет границы, sbsSingleграницы толщиной в один пиксел, sbsSunken – дает эффект вдавленности компонента.

    1. Кнопки

Кнопки широко используются вWindows для управления приложениями. Управлять кнопками можно с помощью щелчка мыши, с клавиатуры или программно. Визуально и функционально компонент кнопка напоминает кнопку клавиатуры. В Delphi имеется несколько разновидностей кнопок: обычные кнопки, кнопки с изображением, быстрые кнопки, т.е. классы TButton (закладка Standart), TBitBtn (закладка Addittional), TSpeedButton (закладка Additional). Все они являются потомками класса TWinControl. Рассмотрим специфические свойства визуального компонента TButton.

Таблица 13 специфические свойства TButton

Cancel

Если имеет значение True, событие OnClick кнопки возникает при нажатии клавиши Esc

Default

Если имеет значение True, событие OnClick кнопки возникает при нажатии клавиши Enter

ModalResult

Определяет результат, с которым было закрыто модальное окно

В терминологии Windows модальными окнами называются такие специальные окна, которые, появившись на экране, блокируют работу пользователя с другими окнами вплоть до своего закрытия. Обычно с их помощью реализуется диалог, требующий от пользователя принятия некоторого решения. Для этого в состав модального окна включается несколько кнопок. Если у кнопки определено свойство ModalResult, нажатие на нее приводит к закрытию модального окна и возвращает в программу значение ModalResult как результат диалога с пользователем. В Delphi определены следующие стандартные значения ModalResult: mrNone – модальное окно не закрывается, mrIgnore – нажата кнопка Ignore, mrOk – нажата кнопка Oк, mrYes – нажата кнопка Yes, mrCancel – нажата кнопка Cancel, mrNo – нажата кнопка No, mrAbort – нажата кнопка Abort, mrAll – нажата кнопка All, mrRetry – нажата кнопка Retry. В отличие от большинства других видимых компонентов кнопка TButton является компонентом операционной системы Windows и поэтому не может изменять свой цвет произвольным образом – изменение цвета кнопки происходит вместе с изменением палитры Windows. Кнопка всегда имеет системный цвет clBtnFace и не имеет свойства Color. Шрифт надписи на кнопке может менять свой стиль и размер, но компонент игнорирует изменение цвета надписи.

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

procedure TForm1.Button1Click(Sender: TObject);

Var i:Integer;

Begin

i:= StrToInt (Label2.Caption);

Label1.Caption:= IntToStr (i+1);

end;

Пиктографическая кнопка TBitBtn представляет собой популярную разновидность стандартной кнопки TButton. Ее отличительная особенность – свойство Glyph, с помощью которого определяется растровое изображение, рисуемое на поверхности кнопки. Свойство Kind определяет одну из 11 стандартных разновидностей кнопки, показанных на рисунке. Нажатие любой из них, кроме bkCustom и bkHelp, закрывает модальное окно и возвращает в программу результат mrxxx: bkOk – mrОk, bkCancel – mrCancel и т. д. Кнопка bkClose для модального окна возвращает mrCancel, а для главного окна программы - закрывает его и завершает работу программы. Кнопка bkHelp автоматически вызывает раздел справочной службы, связанный с HelpContext формы, на которую она помещена. Если у кнопки была изменена пиктограмма Glyph, Delphi автоматически установит свойство Kind равным bkCustom. Это произойдет также в случае, когда кнопка указана как умалчиваемая (Default=True), но Kind не содержит bkОk или bkYes, а также если ее свойство Cancel содержит True, a Kind нe содержит bkCancel или bkNo.

СвойстваCancel, Default и ModalResult кнопка TBitBtn унаследовала у своего родительского класса TButton. С помощью свойства Default кнопку можно сделать умалчиваемой – в этом случае нажатие Enter автоматически вызывает обработчик ее события OnClick. Однако умалчиваемыми можно сделать только кнопки bkYes и bkNo, остальные значения свойства Kind будут заменяться на bkСustom при размещении в Default значения True и наоборот – в Default автоматически помещается False при установке в Kind любого значения, кроме bkYes, bkNo или bkСustom. Специфичные свойства кнопки с изображением указаны ниже:

Таблица 14 Специфичные свойства TBitBtn

Glyph

Определяет от 1 до 4 связанных с кнопкой растровых изображения

Kind

Определяет разновидность кнопки

Layout

Определяет край кнопки, к которому прижимается пиктограмма: blGlyphLeft – к левому; blGlyphRight – к правому; blGlyphTop – к верхнему; blGlyphBottom – к нижнему)

Цвет поверхности кнопки с изображением не может изменяться программно, но в отличие от TButton можно менять цвет надписи на кнопке.

Кнопки TSpeedButton отличаются от TBitBtn тремя обстоятельствами: во-первых, они могут фиксироваться в утопленном состоянии, во-вторых, они не могут закрыть модальное окно и в третьих, они не могут быть умалчиваемыми. Во всем остальном они повторяют свойства и методы TBitBtn. Для фиксации кнопка должна быть отнесена к какой-либо группе кнопок (эта группа может состоять из нее одной – вариант одиночной фиксируемой кнопки). Для этого используется свойствоGroupIndex целого типа, которое не должно быть равно 0. Поведение кнопки определяется логическим свойством AllowAllup: если это свойство имеет значение True, утопленная кнопка отпускается только при нажатии любой другой кнопки, входящей в ту же группу; если AllowAllup равно False, то кнопку можно освободить повторным щелчком. Индикатором состояния кнопки служит логическое свойство Down, которое имеет значение True, если кнопка утоплена. Свойство доступно для записи, что позволяет изменять состояние кнопки программно. Для кнопки TSpeedButton предусмотрено событие onDbkClick, которое возникает при двойном щелчке на утопленной кнопке.