Главная » Delphi » Управление внутренним сервером

0

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

Рассмотрим приложение контроллера,  предназначенного  для  управления  внутрен ним сервером автоматизации, создание которого описано в на стоящей главе  выше.  В данном  случае  для управления сервером используем  только   интерфейс.  На  рис. 15.10  показана  главная форма проекта IPCtrl. Код главного модуля проекта IPCtrl (файл IPCMain.pas) приведен в листинге 15.9.

Рис. 15.10. Главная форма проекта IPCtrl

Листинг 15.9. IPCMain.pas — главный  модуль  контроллера для управления внутренним сервером

unit IPCMain;

interface uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, IPS_TLB;

type

TIPCForm = class(TForm)

ExitBtn: TButton;

Panel1: TPanel;ConBtn: TButton; DisBtn: TButton; Edit: TEdit; SetBtn: TButton; ShowBtn: TButton;

procedure ConBtnClick(Sender: TObject); procedure DisBtnClick(Sender: TObject); procedure SetBtnClick(Sender: TObject); procedure ShowBtnClick(Sender: TObject); procedure ExitBtnClick(Sender: TObject);

private

{ Закрытые объявления }

IPTest: IIPTest;

procedure EnableControls(DoEnable: Boolean);

public

{ Открытые объявления }

end;

var

IPCForm: TIPCForm;

implementation uses ComObj;

{$R *.DFM}

procedure TIPCForm.EnableControls(DoEnable: Boolean);

begin

DisBtn.Enabled := DoEnable;

Edit.Enabled := DoEnable;

SetBtn.Enabled := DoEnable;

ShowBtn.Enabled := DoEnable;

end;

procedure TIPCForm.ConBtnClick(Sender: TObject);

begin

IPTest := CreateComObject(CLASS_IPTest) as IIPTest;

EnableControls(True);

end;

procedure TIPCForm.DisBtnClick(Sender: TObject);

begin

IPTest := nil;

EnableControls(False);

end;

procedure TIPCForm.SetBtnClick(Sender: TObject);

begin

IPTest.MessageStr := Edit.Text;

end;

procedure TIPCForm.ShowBtnClick(Sender: TObject);begin

IPTest.ShowMessageStr;

end;

procedure TIPCForm.ExitBtnClick(Sender: TObject);

begin

Close;

end;

end.Не забудьте,  что перед  запуском  проекта IPCtrl сервер должен  быть  зарегистри рован.  Это можно  сделать  несколькими способами: воспользоваться меню  Run пункт Register  ActiveX  Server,  предварительно  открыв  проект  IPS в  среде   разработки Delphi,  прибегнуть  к  утилите   Windows  RegSvr32.exe или  применить  программу RegSvr32.exe, которая входит  в комплект поставки Delphi. На рис. 15.11 показан за пущенный проект IPCtrl, управляющий сервером IPS.

     Рис. 15.11. Контроллер IPCtrl управляет сервером IPS

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии