ВУЗ:
Составители:
Рубрика:
34
или клиента ) генерирует события для клиента . Клиент эти события обрабатыва-
ет и выводит соответствующие сообщения.
Создание сервера
На основной форме нового проекта расположите компонент Memo. Имя проек-
та – Evp. Преобразуйте проект в сервер автоматизации, как это делалось ранее.
Не забудьте в окне мастера указать Generate Event Support Code –
сгенерировать код поддержки событий. Укажите имя класса – Evt.
В редакторе библиотеки типов в интерфейсе IEvt добавьте два метода
procedure AddText(const s: WideString);
procedure Clear;
В интерфейсе событий IEvtEvents - методы OnTextChanged и OnClear
с такими же параметрами .
Как и ранее , в модуле, содержащем описание класса , запишите реализацию ме-
тодов интерфейса :
procedure Tevt.Clear;
begin
// Fevents <> Nil означает готовность клиента к приему
// события, которое здесь генерируется вызовом
// FEvents.OnClear;
MainForm.Memo1.Lines.Clear;
if FEvents<>nil then FEvents.OnClear;
end;
procedure Tevt.AddText(const s: WideString);
begin
MainForm.Memo1.Lines.Add(s);
end;
Добавим в класс дополнительный метод , необходимый для генерации событий
от пользовательского ввода в Memo:
procedure Tevt.MemoChange(Sender:TObject);
begin
if FEvents<>Nil then FEvents.OnTextChanged((Sender as
TMemo).Text);
end;
и запишем в процедуру Tevt.Initialize
MainForm.Memo1.OnChange:=MemoChange;
Сервер готов .
Создание клиента
34 и ли кли ента) генери руетсобы ти яд лякли ента. К ли ентэти собы ти яобрабаты в а- ети в ы в од и тсоотв етств ую щ и есообщ ени я. Со здани е се рв е ра Н а основ ной форменов ого проекта располож и текомпонентMemo. И мяпроек- та –Evp. Преобраз уй тепроектв серверав томати з аци и , какэто д елалось ранее. Н е з абуд ьте в окне мастера указ ать Generate Event Support Code – сгенери ров ать код под д ерж ки собы ти й . У каж и теи мякласса –Evt. В ред актореби бли отеки ти пов в и нтерфей сеIEvt д обав ьтед в а метод а procedure AddText(const s: WideString); procedure Clear; В и нтерфей сесобы ти й IEvtEvents - метод ы OnTextChanged и OnClear стаки ми ж епараметрами . К аки ранее, в мод уле, сод ерж ащ ем опи сани екласса, з апи ш и тереали з аци ю ме- тод ов и нтерфей са: procedure Tevt.Clear; begin // Fevents <> Nil означает готовность клиента к приему // события, которое здесь генерируется вызовом // FEvents.OnClear; MainForm.Memo1.Lines.Clear; if FEvents<>nil then FEvents.OnClear; end; procedure Tevt.AddText(const s: WideString); begin MainForm.Memo1.Lines.Add(s); end; Д обав и м в класс д ополни тельны й метод , необход и мы й д ля генераци и собы ти й отпольз ов ательского в в од а в Memo: procedure Tevt.MemoChange(Sender:TObject); begin if FEvents<>Nil then FEvents.OnTextChanged((Sender as TMemo).Text); end; и з апи ш ем в процед уру Tevt.Initialize MainForm.Memo1.OnChange:=MemoChange; Серверготов . Создани е к ли е нт а
Страницы
- « первая
- ‹ предыдущая
- …
- 32
- 33
- 34
- 35
- 36
- …
- следующая ›
- последняя »