На этом шаге мы рассмотрим создание приложения, которое в дельнейшем будет сервером автоматизации.
Для разработки сервера автоматизации следует создать обычное приложение и затем добавить к нему описание классов СОМ-объектов, создаваемых этим приложением и предоставляющих доступ к той части его функциональности, которая должна быть доступна будущим контроллерам автоматизации.
Разработаем простейший сервер автоматизации. С этой целью создадим обычное приложение, например, текстовый редактор, содержащий панель инструментов с четырьмя кнопками и компонент ТМеmo (рисунок 1), а также диалоговые окна открытия и сохранения файла.
Рис.1. Внешний вид приложения
Создадим обработчики событий, связанные со щелчками на кнопках:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; SpeedButton1: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; Memo1: TMemo; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure SpeedButton3Click(Sender: TObject); procedure SpeedButton4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} //Очистка окна редактора. procedure TForm1.SpeedButton1Click(Sender: TObject); begin Memo1.Lines.Clear; end; //Загрузка текста из файла. procedure TForm1.SpeedButton2Click(Sender: TObject); begin if OpenDialog1.Execute then Memo1.Lines.LoadFromFile(OpenDialog1.FileName); end; //Сохранение текста в файле. procedure TForm1.SpeedButton3Click(Sender: TObject); begin if SaveDialog1.Execute then Memo1.Lines.SaveToFile(SaveDialog1.FileName); end; //Закрытие приложения. procedure TForm1.SpeedButton4Click(Sender: TObject); begin Close; end; end.
Сохраним проект под именем AutoServ. Отметим, что пока созданный нами текстовый редактор представляет собой обычное Windows-приложение и не является сервером автоматизации.
На следующем шаге мы рассмотрим превращение приложения в сервер автоматизации.