Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Технологии
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.07.2010, 03:50
alex_rain alex_rain вне форума
Прохожий
 
Регистрация: 19.07.2010
Сообщения: 1
Репутация: 10
По умолчанию Обработчик для функции OLE-объекта

Для работы с OPC-серверами в Delphi использовал импорт библиотеки типов
(для OPC DA - OPCDAAuto.dll и gbda_aut.dll) - весьма успешно.
Сейчас почти полностью перешел на Lazarus, в котором нет поддержки
импорта библиотеки типов.
Для того, чтобы обратиться к OPCDAAuto.dll использую OLE-объект.
Пример синхронного чтения данных:
Код:
var
  opcServer, opcGroup, opcItem1: variant;
  isConnected: boolean = False;
procedure TForm1.Button1Click(Sender: TObject);
begin
  if not isConnected then
  begin
    try
      opcServer := CreateOleObject('OPC.Automation');
      opcServer.Connect('Advantech.ADAM.1');
      opcGroup := opcServer.OPCGroups.Add('TestGroup');
      opcItem1 := opcGroup.OPCItems.AddItem('Simulation.Group1.Tag1', 1);
      isConnected := True;
      Label1.Caption := 'Connected';
    except
      on E: Exception do
        ShowMessage(E.ClassName + ': ' + UTF8Encode(E.Message));
    end;
  end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
  if isConnected then
  begin
    try
      opcItem1.Read(1);
      Label2.Caption := VarToStr(opcItem1.Value);
    except
      on E: Exception do
        ShowMessage(E.ClassName + ': ' + UTF8Encode(E.Message));
    end;
  end;
end;
Этот код будет работать и в Delphi (конечно, без UTF8Encode).
Однако, не могу понять, как делать асинхронное чтение через созданный OLE-объект.
Необходимо обрабатывать событие DataChange из DIOPCGroupEvent, но как это сделать в OLE?

В общем, вопрос следующий:
Как создать в Delphi обработчик события OLE-объекта, полученного с помощью CreateOleObject?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter