Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Справочник по компонентам Delphi.doc
Скачиваний:
146
Добавлен:
02.05.2014
Размер:
1 Mб
Скачать

Компонент tddecIientltem

TObject—>TPersistent—”TComponent—>TDDEClientItem

Модуль DDEMAN

Страница Палитры компонентов System

Этот компонент представляет элемент данных на клиентской стороне. После установления контакта с сервером нужно присвоить свойству

(Pb) property DDEConv: TDDEClientConv;

указатель на объект, соответствующий появившемуся контакту, а свойству

(Pb) property DDEItem: String;

имя элемента данных сервера. В этом случае все изменения будут отслеживаться.

В рассмотренном ниже примере приложение-клиент вступает в контакт с сер­вером InfbServer на тему TimeTopic. При нажатии кнопки TimeButton связь устанавливается, при отпускании — разрывается. Метод TimeConvOpen, слу­жащий обработчиком события ОпОреп, присваивает значения именам темы и элемента данных.

const

InfoServer = 'infoserv';

TimeConversation = 'TimeTopic';

ServerTimeItem = 'Timeltem' ;

SCannotStart = 'Cannot start conversation';

procedure TFormI.TimeButtonClick(Sender: Tobject);

begin

if TimeButton.Down then begin

if not TimeConv.SetLink(InfoServer, TimeConversation) or not TimeConv.OpenLink then begin

MessageDIg(SCannotStart, mtError, [mbOk], 0) ;

TimeButton.Down := False;

end end else TimeConv.CloseLink;

end;

procedure TPormI.TimeConvOpen(Sender: TObject);

begin

ClientTimeItem.DDEConv := TimeConv;

ClientTimeItem.DDEItem := ServerTimeItem;

end;

Организация данных у клиента сходна с той, которая принята на сервере:

(Pb) property Text: String;

(Pb) property Lines: TStrings;

Свойство Text является подмножеством Lines и содержит первую строку этого набора.

Когда изменяются данные на сервере, эти изменения отражаются в TDDEClientItem. В этот момент происходит событие:

(Pb) property OnChange: TNotifyEvent;

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

Принципы работы с DDE отражены в примере DDEINFO. Приложение-сервер запускает таймер и с установленным периодом формирует текстовые строки со значением текущего времени и количества свободной памяти. Эти строки являются элементами данных соответствующих тем DDE. На форме клиента находятся две кнопки — Time и Memory. При их нажатии происходит попытка входа в соответствующий контакт. Если она была успешной, кнопка утаплива­ется, и на ней отображается время или количество свободной памяти. При отжатии кнопки контакт разрывается.

Дополнительные компоненты

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

Компонент tGauge

TObject-^TPersistent->TCoinponent-”TControl-”TGraphicControl-”TGauge

Модуль GAUGES

Страница Палитры компонентов Samples

Этот компонент моделирует индикатор, табло которого отображает значение некоторой величины в процентах. Например, можно в динамике отображать процент выполнения протекающего в приложении процесса (копирование или загрузку данных).

Стиль компонента задается свойством

(pb) property Kind: TGaugeKind;

TGaugeKind= (gkText, gkHorizontalBar, gkVerticalBar, gkPie, gkNeedle) ;

gkText — текстовый вывод величины в процентах;

gkHorizontalBar — горизонтальное заполнение;

gkVerticalBar — вертикальное заполнение;

gkPie — отклонение "стрелки спидометра";

gkNeedle — заполнение сектора окружности.

Остальные свойства приведены в таблице:

(Pb) property Color;

Определяет цвет панели компонента. Играет роль только при стилях gkPie, gkNeedle.

(ру property ForeColor: TColor;

Определяет цвет указателя текущего значения.

(№) property BackColor: TColor;

Определяет цвет указателя фона.

(Pb) property MinValue: Longint;

Определяет минимальное значение шкалы измерения.

(pb) property MaxValue: Longint;

Определяет максимальное значение шкалы измерения.

(Pb) property Progress: Longint;

Определяет абсолютное текущее значение индикатора.

(Ro) property PercentDone: Longint ;

Содержит значение в процентах (по отноше­нию к MaxValue).

(Pb) property ShowText: Boolean;

Задает видимость цифр текущего значения на табло индикатора.

Procedure AddProgress(Value:

Используется для динамического изменения текущего значения. Value — добавляемое значение.

Соседние файлы в папке Delphi