Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi DispInterface in Programm nutzen? (https://www.delphipraxis.net/25763-dispinterface-programm-nutzen.html)

Salomon 12. Jul 2004 09:18


DispInterface in Programm nutzen?
 
Hallo,
ich versuche zur Zeit Map & Guide Routingfunktionalität in ein Delphi Programm zu integrieren. Um auf die Funktionen und Attribute zuzugreifen binde ich eine vorgefertigte Unit ein.

In dieser sind viele Deklarationen folgender Art. Wie kann ich diese jedoch nun in meinem Programm nutzen? Im konkreten Beispiel möchte ich z.B. in meinem Programm auf das OnRouteCalculated event reagieren.

Delphi-Quellcode:
// *********************************************************************//
// DispIntf: IMGCRoutingEvents
// Flags:    (4096) Dispatchable
// GUID:     {1230E29A-F89D-41F0-B65C-E0675451ECF6}
// *********************************************************************//
  IMGCRoutingEvents = dispinterface
    ['{1230E29A-F89D-41F0-B65C-E0675451ECF6}']
    procedure OnRouteCalculated(success: WordBool); dispid 1;
    procedure OnOptimized(success: WordBool); dispid 2;
    procedure OnWayPointsChanged; dispid 3;
    procedure OnOptionsChanged; dispid 4;
    procedure OnRouteReseted; dispid 5;
  end;
Thanx Salomon

neolithos 12. Jul 2004 09:28

Re: DispInterface in Programm nutzen?
 
Das war relativ knifflig.

Aber du mist eine EventDispatch (IUnknown, IDispatch) programmieren. Welches via Invoke die Nachrichten erhält.

Da das relative viel zu erklären ist! Schau doch mal die Excel-Automationsdateien an (vorallem OleServer.pas). Dort ist sowas implementiert.

Salomon 12. Jul 2004 09:43

Re: DispInterface in Programm nutzen?
 
Danke für die Hinweise, schau ich mir gleich mal an.

Wenn ich dann konkretere Fragen habe werde ich dich als Experten nerven ;)

Thanx Salomon

Bernhard Geyer 12. Jul 2004 09:44

Re: DispInterface in Programm nutzen?
 
I. d. R. wird vom Delphi-TLB-Importer eine Wrapper-Klasse erstellt, welche die Events als "normale" Delphi-Events in der generierten Wrapper-Klasse bereitstellt.

Falls der Delphi-Automatismus nicht funktioniert, so kannst Du ja mal EventSink von Binh Ly ausprobieren. Damit sollte es auf jedenfall (bisher keine Probleme) gehen.

Salomon 12. Jul 2004 09:54

Re: DispInterface in Programm nutzen?
 
Die Wrapper Klasse konnte ich mit dem TLB Importer schon anlegen. Wir haben hier in Firma aus Sicherheitsgründen nur einen zentralen I-Net Zugang :( Ich probiers dannn mal weiter und schau gegen Mittag hier nochmal rein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz