Программирование в Delphi. Барков И.А - 23 стр.

UptoLike

Составители: 

23
он наследует свойство от родителя и меняет цвет, трехмерность, шрифт или показ ярлычков вместе и
вслед за ним. Но если само свойство дочернего элемента (например, Color или ParentColor) переустано-
вить явно, то связь с родительским свойством разрьюается.
2.8. Графическая подсистема
Разработчики Delphi уделили большое внимание возможностям работы с деловой графикой:
простота и удобство ее использования напрямую сказывается на простоте и удобстве созданных при-
ложений. Вместо дебрей графического интерфейса Windows разработчик получил несколько инстру-
ментов, сколь понятных, столь же и мощных.
Другой бич работы с графикой в Windows — проблема рационального использования ресурсов.
Для больших программных
комплексов она стала в последнее время нешуточной (это касается, по
крайней мере, версий Windows до 3.11 включительно). Такие монстры, как Microsoft Office, потребля-
ют во время работы львиную долю ресурсов. В Delphi ресурсами GDI незримо для пользователя "заве-
дуют" специальные менеджеры, ведущие списки всех размещенных кистей, перьев, шрифтов и т. п. и
управляющие их использованием.
Обязательным
для любого объекта, связанного с графикой в Delphi является событие
property OnChange: TNotifyEvent;
Его обработчик вызывается всякий раз, когда изменились какие-то характеристики объекта,
влияющие на его внешний вид.
В стандартном GDI основой для рисования служит дескриптор контекста устройства hDC и
связанные с ним шрифт, перо и кисть. В состав VCL входят объектно-ориентированные надстройки
над последними,
назначением которых является удобный доступ к свойствам инструментов и прозрач-
ная для пользователя обработка всех их изменений. Сначала опишем три этих класса.
Класс TCanvas
TCanvas = class(TPersistent)
Этот класссердцевина графической подсистемы Delphi. Он объединяет в себе и "холст"
(контекст конкретного устройства GDI), и "рабочие инструменты" (перо, кисть, шрифт) и даже "под-
мастерьев" (набор функций по рисованию типовых геометрических фигур).
В дальнейшем для обозначения этого класса мы будем пользоваться термином "канва". Созна-
вая неоднозначность такого перевода, авторы тем не
менее считают, что у него наилучшие шансы при-
житься.
Канва не является компонентом, но она входит в качестве свойства во многие другие компо-
ненты, которые должны уметь нарисовать себя и отобразить какую-либо информацию.
Дескриптор контекста устройства, над которьм "построена" канва, может быть востребован для
различных низкоуровневых операций. Он задается
свойством:
property Handle: HDC;
Для рисования канва включает в себя шрифт, перо и кисть:
(р^) property Font: TFont ;
(Pt^ property Pen: TPen;
(РЙ property Brush: TBrush;
Кроме того, можно рисовать и поточечно, получив доступ к каждому пикселу. Значение свой-
ства
property Pixels[X, Y: Integer]: TColor;
соответствует цвету точки с координатами (X,Y).
Канва содержит методы-надстройки над всеми основными функциями рисования GDI Windows
и свойства, которые приведены ниже в таблице. При
их рассмотрении имейте в виду, что все геометри-
ческие фигуры рисуются текущим пером. Те из них, которые можно закрашивать, закрашиваются с
он наследует свойство от родителя и меняет цвет, трехмерность, шрифт или показ ярлычков вместе и
вслед за ним. Но если само свойство дочернего элемента (например, Color или ParentColor) переустано-
вить явно, то связь с родительским свойством разрьюается.


                                   2.8. Графическая подсистема
       Разработчики Delphi уделили большое внимание возможностям работы с деловой графикой:
простота и удобство ее использования напрямую сказывается на простоте и удобстве созданных при-
ложений. Вместо дебрей графического интерфейса Windows разработчик получил несколько инстру-
ментов, сколь понятных, столь же и мощных.
       Другой бич работы с графикой в Windows — проблема рационального использования ресурсов.
Для больших программных комплексов она стала в последнее время нешуточной (это касается, по
крайней мере, версий Windows до 3.11 включительно). Такие монстры, как Microsoft Office, потребля-
ют во время работы львиную долю ресурсов. В Delphi ресурсами GDI незримо для пользователя "заве-
дуют" специальные менеджеры, ведущие списки всех размещенных кистей, перьев, шрифтов и т. п. и
управляющие их использованием.
       Обязательным для любого объекта, связанного с графикой в Delphi является событие
       property OnChange: TNotifyEvent;
       Его обработчик вызывается всякий раз, когда изменились какие-то характеристики объекта,
влияющие на его внешний вид.
       В стандартном GDI основой для рисования служит дескриптор контекста устройства hDC и
связанные с ним шрифт, перо и кисть. В состав VCL входят объектно-ориентированные надстройки
над последними, назначением которых является удобный доступ к свойствам инструментов и прозрач-
ная для пользователя обработка всех их изменений. Сначала опишем три этих класса.




                                            Класс TCanvas
        TCanvas = class(TPersistent)
        Этот класс — сердцевина графической подсистемы Delphi. Он объединяет в себе и "холст"
(контекст конкретного устройства GDI), и "рабочие инструменты" (перо, кисть, шрифт) и даже "под-
мастерьев" (набор функций по рисованию типовых геометрических фигур).
        В дальнейшем для обозначения этого класса мы будем пользоваться термином "канва". Созна-
вая неоднозначность такого перевода, авторы тем не менее считают, что у него наилучшие шансы при-
житься.
        Канва не является компонентом, но она входит в качестве свойства во многие другие компо-
ненты, которые должны уметь нарисовать себя и отобразить какую-либо информацию.
        Дескриптор контекста устройства, над которьм "построена" канва, может быть востребован для
различных низкоуровневых операций. Он задается свойством:
        property Handle: HDC;
        Для рисования канва включает в себя шрифт, перо и кисть:
        (р^) property Font: TFont ;
        (Pt^ property Pen: TPen;
        (РЙ property Brush: TBrush;
        Кроме того, можно рисовать и поточечно, получив доступ к каждому пикселу. Значение свой-
ства
        property Pixels[X, Y: Integer]: TColor;
        соответствует цвету точки с координатами (X,Y).
        Канва содержит методы-надстройки над всеми основными функциями рисования GDI Windows
и свойства, которые приведены ниже в таблице. При их рассмотрении имейте в виду, что все геометри-
ческие фигуры рисуются текущим пером. Те из них, которые можно закрашивать, закрашиваются с



                                                23