Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2011, 14:56   #1
Ann_Sh
Пользователь
 
Аватар для Ann_Sh
 
Регистрация: 05.11.2010
Сообщений: 25
Восклицание Создание внутреннего и внешнего серверов. Создание серверов автоматизации.

Алгоритм создания:
1. Создайте приложение или DLL, которое должно выступать в роли сервера автоматиза-ции. Можно использовать любое ранее созданное вами приложение и добавить к нему автоматизацию.
2. При помощи мастера объекта автоматизации создайте объект автоматизации и добавьте его к проекту.
3. Добавьте свойства и методы к вашему объекту автоматизации при помощи библиотеки типов. Данные свойства и методы нужны для того, чтобы диспетчеры автоматизации могли их использовать при обращении к вашему серверу автоматизации.
4. Зарегистрируйте приложение как сервер автоматизации.
Необходимо выполнить простое задание: сервер автоматизации должен изменять цвет толь-ко формы путем передачи необходимого цвета из диспетчера автоматизации.
Для создания сервера автоматизации необходимо выполнить следующие шаги:

Часть А: создаем сервер автоматизации.
1) Создайте простое приложение, состоящее из формы и поместите на нее любую фигуру (Shape). Для того, чтобы приложение выполняло функции сервера автоматизации, доба-вим к нашему проекту объект автоматизации. Нужно выбрать пункт главного меню File/New. В открывшемся окне New Items (Новые объекты) на вкладку ActiveX
2) Выберите пиктограмму Automation Object (Объект автоматизации) двойным щелчком. После этого появится окно Automation Object Wizard (Мастер объекта автоматизации). Заполните соответствующие поля:
поле CoClass Name - Auto
поле Instancing – Multiple Instance
поле Threading Model - Apartament
После установки всех параметров в данном диалоговом окне Delphi создает новую биб-лиотеку типа для проекта и добавит интерфейс и класс компонентов к данной библиоте-ке типа. Мастер создает новый модуль в проекте unit2, который содержит реализацию интерфейса автоматизации, добавленного к библиотеке типа.
3) После закрытия диалогового окна Automation Object Wizard (Мастер объекта автомати-зации) появится редактор библиотеки типа с вашим новым проектом Project1.tlb, кото-рый содержит объект автоматизации TAuto, являющимся классом-наследником класса TAutoObject:
type
TAuto = class (TAutoObject, IAuto)
4) Теперь необходимо дописать к основному интерфейсу IAuto нужные свойства и методы:
- в левой части редактора библиотеки типа щелкните на изображение интерфейса IAuto левой кнопкой мыши;
- т.к. нам нужно только получать цвет от диспетчера автоматизации, то понадобится свой-ство только для чтения, для этого щелкните на стрелочке справа от пиктограммы, изо-бражающей свойство в верхней панели редактора, и выберите Write Only (Только для записи);
- назовите свойство Color и установите тип свойства OLE_COLOR в поле Type ;
- новое свойство добавлено и нужно нажать в верхней панели редактора кнопку Refresh Implementation для обновления модуля реализации объекта автоматизации;
- допишите вручную в модуль реализации тело процедуры:
procedure TAuto.Set_Color(Value: OLE_COLOR);
begin
Form1.color:=Value;
end;
- после этого создайте новую папку, например LAB2 сохраните приложение в эту пап-ку, дайте имя проекту, например Serv. Затем откомпилируйте или запустите приложение для того, чтобы получить исполняемый файл Serv.exe. Итак, новый сервер автоматизации готов.
Часть В: создаем диспетчер автоматизации для проверки работы сервера автоматизации.
1) Создадим новый проект File/New Application . Разместим на форме 4 кнопки: Соединить, Цвет красный, Цвет зеленый, Цвет синий;
2) Для кнопки Соединить впишем обработчик события OnClick, которое создает экземпляр сервера автоматизации. При нажатии на эту кнопку будет запущено приложение Serv.exe;
Procedure Tform1. Button1Click (Sender: TObject);
Begin
FIntf := CoAuto.create;
End;
3) Для событий OnClick кнопок, определяющих цвета, пишем обработчики событий, кото-рые вызывают метод Set_Color интерфейса IAuto.
FIntf.Set_color(clRed); - Button2Click
FIntf.Set_color(clGreen); - Button3Click
FIntf.Set_color(clBlue); - Button4Click
В раздел uses нужно добавить библиотеку типов Serv_TLB , а в раздел private добавить поле FIntf типа IAuto.
4) Запустите диспетчер автоматизации на исполнение. Нажмите последовательно кнопки Соединить (запускается приложение Serv.exe), а затем измените цвет формы кнопками Цвет. При правильной работе форма должна менять цвет на указанный.


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

procedure TAuto.Set_Color(Value: OLE_COLOR);
begin
Form1.color:=Value;
end;


[Error] Unit2.pas(23): Undeclared identifier: 'Form1'
[Fatal Error] Project1.dpr(7): Could not compile used unit '..\..\..\..\Documents and Settings\Администратор\Рабочий стол\LAB2\Unit2.pas'

Если не вписываю, делаю до конца все задание, компилируется, приложение Serv.exe запускается...но вот фон не меняется...
Где и что я не понимаю????
Ann_Sh вне форума Ответить с цитированием
Старый 09.10.2011, 15:00   #2
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

удалите с проекта Unit2.pas
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 09.10.2011, 15:35   #3
Ann_Sh
Пользователь
 
Аватар для Ann_Sh
 
Регистрация: 05.11.2010
Сообщений: 25
По умолчанию

JUDAS, дело в том, что Unit2 создается автоматически...
Ann_Sh вне форума Ответить с цитированием
Старый 09.10.2011, 15:53   #4
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Анита, посмотрите вложение, там есть то что Вам нужно.
Распакуйте архив в какую то папке (желательно не на рабочитй стол) например на диск D или C. Внутри архива есть TAutoProj1.ocx зарегистрируйте эту бибиотеку Актив. После этого, в Делфи Вы можете добавить палитру компонент Project=>Import type library
После добавление в закладки Делфи класса TTAuto Вы можете создать экземпляр в новом приложении, это будет форма, и поменять цвет.
Исходный код посмотрите в архиве.
Изображения
Тип файла: jpg 222222.JPG (43.6 Кб, 42 просмотров)
Вложения
Тип файла: zip TAuto.zip (256.0 Кб, 15 просмотров)
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конфликт виртуальных серверов ZvEr_HaCkEr Свободное общение 4 19.04.2011 18:37
Принцип работы NS-серверов Ivan_32 Свободное общение 1 31.10.2010 03:38
Мониторинг серверов на HTML EnLate Помощь студентам 0 16.12.2009 23:05
Администратор игровых серверов. Flake_69 Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 03.05.2009 14:56
CS - поиск серверов Роман Радер Свободное общение 2 30.11.2008 00:52