Показать сообщение отдельно
  #13  
Старый 24.03.2011, 12:00
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

прикрутить события можно так попробовать:

Код:
uses
  InterfacedObjectDispatch,
  S7PROSIMLib_TLB,
  ComObj,

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    procedure InvokeEvent(DispID: Integer; const IID: TGUID; LocaleID: Integer;
      Flags: Word; var Params; VarResult, ExcepInfo, ArgErr: Pointer);
  public
    { Public declarations }
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  S7ProSim: IS7ProSim;
  FEventsConnection: Integer;
  FEventDispatch: TInterfacedObjectDispatch;
begin
  FEventDispatch:=TInterfacedObjectDispatch.Create;
  FEventDispatch.OnInvokeEvent:=InvokeEvent;
  S7ProSim:=CreateComObject(CLASS_S7ProSim) as IS7ProSim;
  InterfaceConnect(S7ProSim, IID_IS7ProSimEvents, FEventDispatch, FEventsConnection);
  S7ProSim.Connect;
  S7ProSim.SetScanMode(ContinuousScan);
  S7ProSim.SetState('RUN');

//  для отключения обработчика
//  InterfaceDisconnect(S7ProSim, IID_IS7ProSimEvents, FEventsConnection);
end;

procedure TForm1.InvokeEvent(DispID: Integer; const IID: TGUID;
  LocaleID: Integer; Flags: Word; var Params; VarResult, ExcepInfo,
  ArgErr: Pointer);
begin
  //  события
  case DispID of
    1: begin
      // OnScanFinished
    end;
    2: begin
      // OnConnectionError
    end;
    3: begin
      // OnPLCSimStateChanged
    end;
    4: begin
      // OnPauseStateChanged
    end;
    5: begin
      // OnScanModeChanged
    end;
  end;
end;
http://data.cod.ru/94750

а чего там с Connect я вообще понятия не имею что такое S7ProSim
__________________
Пишу программы за еду.
__________________
Ответить с цитированием