Графика в Delphi

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

чем это может быть любое изображение и даже текст.

Надо только не забыть при работе с буфером обмена вставить в оператор uses вашего модуля ссылку на модуль Clipbrd. Автоматически Delphi эту ссылку не вставляет.

Возвращаясь к свойствам компонента Image, можно отметить один недостаток, присущий нашему тестовому приложению, приведенному на рис.4.5 При загрузке разных изображений размер окна приложения может оказаться или слишком маленьким, и тогда вы увидите только часть изображения, или слишком большим, и тогда изображение будет некрасиво размещено в левом верхнем углу формы, оставляя много пустого пространства. Этот недостаток можно устранить, если воспользоваться свойствами Height (высота) и Width (ширина) компонента Image. При свойстве AutoSize установленном в true размеры Image автоматически устанавливаются равными размерам загруженного изображения. И этими размерами можно воспользоваться для соответствующего изменения размеров формы. Например, приведенный ранее код загрузки изображения из файла можно заменить на следующий:

OpenPictureDialog1. Execute then

begin. Picture. LoadFromFile (. FileName);. ClientHeight: = Image1. Height+10;. Top: = Form1. ClientRect. Top

+ (Form1. ClientHeight - Image1. Height) div 2;. ClientWidth: = Image1. Width+10;. Left: = Form1. ClientRect. Left

+ (Form1. ClientWidth - Image1. Width) div 2;

end;

 

В этом коде размеры клиентской области формы устанавливаются несколько больше размеров компонента Image1, которые в свою очередь адаптируются к размеру картинки благодаря свойству AutoSize. Внесите эти исправления в свое приложение, выполните его и увидите, что форма стала автоматически адаптироваться к размерам загруженного изображения

Компонент Shape

Компонент Shape только условно может быть отнесен к средствам отображения графической информации, поскольку просто представляет собой различные геометрические фигуры, соответствующим образом заштрихованные. Основное свойство этого компонента - Shape (форма), которое может принимать значения:

 

stRectangle прямоугольник stRoundRect прямоугольник со скругленными углами stEllipse эллипс stSquare квадрат stRoundSquare квадрат со скругленными углами stCircle круг

Примеры этих форм показаны на рис.4.7

 

Рис.4.7 Примеры компонента Shape

Другое существенное свойство компонента - Brush (кисть). Это свойство является объектом типа TBrush, имеющим ряд подсвойств, в частности: цвет (Brush. Color) и стиль (Brush. Style) заливки фигуры. Заливку при некоторых значениях Style вы можете видеть на рис.4.7 Третье из специфических свойство компонента Shape - Pen (перо), определяющее стиль линий. Это свойство, как и свойство Brush, уже рассматривались в разделе 4.2 . Справочные данные об этих свойствах вы можете найти в главе 10*.

* В книге нет главы 10. Вероятно, автор планировал поместить в этой главе справочные материалы по рассмотренным в книге объектам Дельфи. - Примечание разработчика электронной версии.

Компонент Chart

Теперь рассмотрим компонент Chart. Этот компонент позволяет строить различные диаграммы и графики, которые выглядят очень эффектно (рис.4.8). Компонент Chart имеет множество свойств, методов, событий, так что если все их рассматривать, то этому пришлось бы посвятить целую главу. Поэтому ограничимся рассмотрением только основных характеристик Chart. А с остальными вы можете ознакомиться во встроенной справке Delphi или просто опробовать их, экспериментируя с диаграммами.

 

Рис.4.8 Пример приложения с диаграммами: начальное состояние (а) и состояние при изменении типа диаграммы и увеличении фрагмента графика (б) а) б)

Компонент Chart является контейнером объектов Series типа TChartSeries - серий данных, характеризующихся различными стилями отображения. Каждый компонент может включать несколько серий. Если вы хотите отображать график, то каждая серия будет соответствовать одной кривой на графике. Если вы хотите отображать диаграммы, то для некоторых видов диаграмм можно наложить друг на друга несколько различных серий, для других (например, для круговых диаграмм) это, вероятно, будет выглядеть некрасиво. Однако, и в этом случае вы можете задать для одного компонента Chart несколько серий одинаковых данных с разным типом диаграммы. Тогда, делая в каждый момент времени активной одну из них, вы можете предоставить пользователю выбор типа диаграммы, отображающей интересующие его данные.

Разместите один или два (если захотите воспроизвести рис.4.8) компонента Chart на форме и посмотрите открывшиеся в Инспекторе Объектов свойства. Приведем пояснения некоторых из них.

 

AllowPanning Определяет возможность пользователя прокручивать наблюдаемую часть графика во время выполнения, нажимая правую кнопку мыши. Возможные значения: pmNone - прокрутка запрещена, pmHorizontal, pmVertical или pmBoth - разрешена соответственно прокрутка только в горизонтальном направлении, только в вертикальном или в обоих направлениях. AllowZoom Позволяет пользователю изменять во время выполнения масштаб изображения, вырезая фрагменты диаграммы или графика курсором мыши (на рис.4.8 б внизу показан момент просмотра фрагмента графика, целиком представленного на рис.4.8 а). Title Определяет заголовок диаграммы. Foot Определяет подпись под диаграммой. По умолчанию отсутствует. Текст подписи определяется подсвойством Text. Frame Определяет рамку вокруг диаграммы. Legend Легенда диаграммы - список обозначений. MarginLeft, MarginRight, MarginTop, MarginBottom Значения левого, правого, верхнего и нижнего полей. BottomAxis, LeftAxis, RightAxis Эти свойства определяют характери?/p>