AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Parameter Problem mit einer Typbibliothek
Thema durchsuchen
Ansicht
Themen-Optionen

Parameter Problem mit einer Typbibliothek

Ein Thema von th_bone · begonnen am 2. Feb 2005 · letzter Beitrag vom 3. Feb 2005
Antwort Antwort
th_bone

Registriert seit: 16. Jun 2004
172 Beiträge
 
Delphi 2005 Professional
 
#1

Parameter Problem mit einer Typbibliothek

  Alt 2. Feb 2005, 10:36
Hallo,

ich habe ein problem mit einer Typbibliothek im speziellen mit dem aufruf einer bestimmten procedure.

Der Aufruf sollte normalerweise

 stockchartx1.IndPropStr['SMA',1]:='SUNW.close'; so erfolgen und delphi compiliert auch ohne murren

wenn ich jetzt aber obigen aufruf tätige kommt folgende fehlermeldung

EOLeSysError - Parameter nicht optional

der zugehörige code der Typbibliothek

Delphi-Quellcode:
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;
Der Fehler liegt sicher an dem Param3 denke ich - aber hier komme ich einfach nicht weiter

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
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Parameter Problem mit einer Typbibliothek

  Alt 2. Feb 2005, 12:22
Es gibt 2 Workarounds:
1.) Set-Methode direkt aufrufen
stockchartx1.Set_IndPropStr('SMA',1,'SUNW.close'); 2.) auf Dispatch-Interface ausweichen
Delphi-Quellcode:
var
   stockchart_disp : OleVariant;
begin
   stockchart_disp := stockchartx1 as Idispatch;
   stockchart_disp.IndPropStr['SMA',1]:='SUNW.close';
end;
Die 1. Variante ist schneller, die 2. Variante ist evtl. flexibler in Bezug auf weglassen von Parametern.
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.
Andreas
  Mit Zitat antworten Zitat
th_bone

Registriert seit: 16. Jun 2004
172 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Parameter Problem mit einer Typbibliothek

  Alt 3. Feb 2005, 11:29
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 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