IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Miroslav Patočka:12.9.2022 8:45

Ahoj všem,
píšu si takový jednoduchý prográmek, který využívá unitu napsanou někým jiným, a nedaří se mi rozchodit předávání hodnot z této unity do mého programu. Opačným směrem vše funguje bez problémů. Zde je kus kódu unity:

unit TWSLib_TLB;
const
  LIBID_TWSLib: TGUID = '{0A77CCF5-052C-11D6-B0EC-00B0D074179C}';
  CLASS_Tws: TGUID = '{0A77CCF8-052C-11D6-B0EC-00B0D074179C}';
type
  _DTwsEvents = dispinterface;

// DispIntf:  _DTwsEvents
// Flags:     (4096) Dispatchable
// GUID:      {0A77CCF7-052C-11D6-B0EC-00B0D074179C}
// *********************************************************************//
  _DTwsEvents = dispinterface
procedure currentTime(time: Integer); dispid 32;

Tady je pak kus kodu v mém programu:

procedure TForm1.Connect_TWSClick(Sender: TObject);
var
  Disp:IDispatch;
  Event:_DTwsEvents;
begin
    Tws1.connect('127.0.0.1', 7496, 0, 0);
    Disp:=CreateComObject(CLASS_Tws) as IDispatch;
    Event:=_DTwsEvents(Disp);

    cas:=1;
    Tws1.reqCurrentTime;
    Event.currentTime(cas);  //v proměnné cas by měl být aktuální čas, bohužel tomu tak není

V manuálu od té cizí unity se píše: ActiveX events receive information from the system and make it available to an application. This section defines the ActiveX events you can receive via the DTwsEvents interface.
A konkrétně pro proceduru currentTime: This method receives the current system time on the server side.
Může mně prosím někdo alespoň nasměrovat, kde dělám chybu? Děkuji.

 
Odpovědět
12.9.2022 8:45
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.