Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi CreateOleObject und Guid (https://www.delphipraxis.net/111511-createoleobject-und-guid.html)

franktron 4. Apr 2008 15:42


CreateOleObject und Guid
 
Ich will die Slef32 DLL von Datev nutzen und habe auch schon die TLib importiert.

Jetzt will ich Mit CreateOleObject ein ISELFWrite Object erstellen aber das geht nicht.

Ich habe nur die GUI {3E2C9364-7229-11D2-849D-0000F65A3DCB}

Kann mir jemand helfen.

Delphi-Quellcode:
ISELFWrite = interface(IDispatch)
    ['{3E2C9364-7229-11D2-849D-0000F65A3DCB}']

FDatevWrite:=CreateOleObject('ISELFWrite') as ISELFWrite;
FDatevWrite ist ISELFWrite

Es kommt immer der Fehler ungültiger Zeichenstring.

Was mach ich falsch.

shmia 4. Apr 2008 16:40

Re: CreateOleObject und Guid
 
Die ProgId besteht immer aus mindestens 2 Teilen:
Beispiel:
Delphi-Quellcode:
word := CreateOleObject('Word.Application'); // Application Objekt von WinWord
wb  := CreateOleObject('Excel.Workbook');   // neues Workbook von Excel öffnen
Optional kann man noch zusätzlich eine Version angeben (Word.Application.7).

http://support.microsoft.com/kb/183771/en-us

franktron 4. Apr 2008 18:02

Re: CreateOleObject und Guid
 
Weis denn einer wie der String bei SELF32.dll aussehen muss für SelfWrite

shmia 4. Apr 2008 18:16

Re: CreateOleObject und Guid
 
Wenn du die TLB schon importiert hast, brauchst du doch nicht CreateOleObject() verwenden.
Öffne die Unit xxxx_TLB.pas und gehe ganz ans Ende.
Dort findet sich Code wie folgendes Beispiel:
Delphi-Quellcode:
class function CoMoney.Create: IMoney;
begin
  Result := CreateComObject(CLASS_Money) as IMoney;
end;
Um bei dem Beispiel zu bleiben, müsste man hier schreiben:
Delphi-Quellcode:
var
  money_object : IMoney;
begin
  money_object := CoMoney.Create; // das war's schon
Jetzt musst du nur noch schauen, welcher Aufruf zu deinem Interface ISELFWrite passt.
Wenn du nichts passendes findest, liegt das daran, dass du zuerst ein anderes Objekt erzeugen musst, um an das Interface ranzukommen.
Wenn alle Stricke reisen, dann kannst du die TLB-Datei gezippt hier im Forum posten.

schönes Wochenende; ich bin wech ;-)

franktron 4. Apr 2008 18:21

Re: CreateOleObject und Guid
 
Danke dafür sind die also da.
Hab mich schon gewundert was die da tun.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:19 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