![]() |
Parameter Problem mit einer Typbibliothek
Hallo,
ich habe ein problem mit einer Typbibliothek im speziellen mit dem aufruf einer bestimmten procedure. Der Aufruf sollte normalerweise
Delphi-Quellcode:
so erfolgen und delphi compiliert auch ohne murren
stockchartx1.IndPropStr['SMA',1]:='SUNW.close';
wenn ich jetzt aber obigen aufruf tätige kommt folgende fehlermeldung EOLeSysError - Parameter nicht optional der zugehörige code der Typbibliothek
Delphi-Quellcode:
Der Fehler liegt sicher an dem Param3 denke ich - aber hier komme ich einfach nicht weiter
procedure TStockChartX.Set_IndPropStr(const Key: WideString; ParamNum: Smallint;
const Param3: WideString); { Warnung: Die EigenschaftIndPropStr hat einen Setter und eine Getter, deren Typen unterscheidlich sind. Delphi kann keine solche Eigenschaft generieren und verwendet deshalb eine Variante . } var InterfaceVariant: OleVariant; begin InterfaceVariant := DefaultInterface; InterfaceVariant.IndPropStr := Param3; end; eigentlich sieht es für mich so aus als ob ein dritter parameter (Param3) entgegen der Aufrufbeschreibung gebraucht wird - verwende ich aber einen dritten parameter in dem obigen aufruf dann bekomme ich einen Fehler "Zu viele Parameter" In der Typbibliothek steht ja auch eine Warnung - aber heißt dass das ich diese funktion nicht nutzen kann ? Also ich verstehe hier im moment leider nur Bahnhof - Bin für jeden tip/Bsp dankbar Tschüss Ralf |
Re: Parameter Problem mit einer Typbibliothek
Es gibt 2 Workarounds:
1.) Set-Methode direkt aufrufen
Delphi-Quellcode:
2.) auf Dispatch-Interface ausweichen
stockchartx1.Set_IndPropStr('SMA',1,'SUNW.close');
Delphi-Quellcode:
Die 1. Variante ist schneller, die 2. Variante ist evtl. flexibler in Bezug auf weglassen von Parametern.
var
stockchart_disp : OleVariant; begin stockchart_disp := stockchartx1 as Idispatch; stockchart_disp.IndPropStr['SMA',1]:='SUNW.close'; end; PS: trag doch deine Delphi Version in das DP Benutzerprofil ein, dann kann man auf Fragen, die von der Version abhängen genauer antworten. Gerade der Import von TLBs hängt stark von der Delphi Version ab. |
Re: Parameter Problem mit einer Typbibliothek
Hi,
erst mal danke für die schnelle Antwort - nur leider hänge ich immer noch an dem Problem... was ich vergessen hatte zu erwähnen ist, dass die Typbibliothek als Active-X eingebunden wurde und auch eine Komponente anlegt. Methode 1 scheitert, bereits beim compilieren mit der meldung 'Undefinierter Bezeichner: Set_IndPropStr' Ich wollte dann das Interface direkt einbinden - aber leider fehlt in der ...libTLB.pas eine coClass die mir die function create bereitstellt und deshalb konnte ich das Interface nicht einbinden.. ich muss aber dazusagen dass ich noch nicht allzuviel von COM programmierung verstehe - vielleicht gibt es auch einen anderen weg die procedure Set_IndPropStr direkt anzusprechen ? Methode 2 läßt sich kompilieren führt aber bei aufruf zu einem 'EOleSYS Error - nicht implementiert' liegt wahrscheinlich auch daran dass ich das Interface nicht direkt aufrufen kann alles in der ...libTLB.pas ist komplett als "dispinterface" definiert Thx Ralf P.S. ich nutze delphi 7 pro |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz