Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi reserviertes Wort umgehen (https://www.delphipraxis.net/51317-reserviertes-wort-umgehen.html)

thomasch 10. Aug 2005 11:22


reserviertes Wort umgehen
 
Hallo,
in einer Anwendung, auf die ich über späte Bindung zugreife gibt es ein Objekt mit der Eigenschaft "Type". Nun is das aber ein reserviertes Wort in Delphi, so dass z.B.
Delphi-Quellcode:
if (Objekt.Type=bla) then
in die Hosen geht. (Type ist dort ein Integer)

Kann ich ohne größere Kopfstände das reservierte Wort umgehen?

Thomasch

Bernhard Geyer 10. Aug 2005 11:30

Re: reserviertes Wort umgehen
 
Wenn du auf frühe Bindung umstellst wird sowas von Typlibrary-Importer von Delphi automatisch erledigt.

thomasch 10. Aug 2005 11:35

Re: reserviertes Wort umgehen
 
Mit früher Bindung bekomme ich leider ganz andere Probleme, wegen denen ich auf late binding umgestiegen bin.

Thomasch

mirage228 10. Aug 2005 11:39

Re: reserviertes Wort umgehen
 
Hi,

fall Du Delphi 2005 hast, kannst Du Bezeichner, die eigentlich reserviert sind, mit einem & ansprechen.

Delphi-Quellcode:
var
  &Unit: Integer;
begin
  &Unit := 20;
end;
Offiziell geht das nur unter .NET (wofür das Feature eigentlich geschaffen wurde), aber es kompiliert auch unter Win32.


mfG
mirage228

Robert Marquardt 10. Aug 2005 11:56

Re: reserviertes Wort umgehen
 
Wenn du ein _TLB.pas verwendest, dann kannst du doch dort alle Namen umbiegen.

Bernhard Geyer 10. Aug 2005 12:09

Re: reserviertes Wort umgehen
 
Zitat:

Zitat von thomasch
Mit früher Bindung bekomme ich leider ganz andere Probleme, wegen denen ich auf late binding umgestiegen bin.

Welche den?

thomasch 10. Aug 2005 12:17

Re: reserviertes Wort umgehen
 
Ich müsste jetzt genauer nachsehen.
Woran ich mich spontan erinnere sind Probleme beim Übergeben von Variablen und beim Aufrufen von Funkionen. Auch jetzt muss ich an einer Stelle mit VarArrayRef arbeiten, weil anders die Variable nicht zu übergeben ist.

Bernhard Geyer 10. Aug 2005 12:24

Re: reserviertes Wort umgehen
 
Zitat:

Zitat von thomasch
Ich müsste jetzt genauer nachsehen.
Woran ich mich spontan erinnere sind Probleme beim Übergeben von Variablen und beim Aufrufen von Funkionen. Auch jetzt muss ich an einer Stelle mit VarArrayRef arbeiten, weil anders die Variable nicht zu übergeben ist.

Du kannst in Delphi wahlweise frühe und späte Bindung verwenden.
Wenn dir eine Funktion in der frühen Bindung probleme bereitet so nimm doch für diese Funktion die späte Bindung.

shmia 10. Aug 2005 12:33

Re: reserviertes Wort umgehen
 
In der Unit AxCtrls gibt es:
Delphi-Quellcode:
function GetDispatchPropValue(Disp: IDispatch; DispID: Integer): OleVariant;
procedure SetDispatchPropValue(Disp: IDispatch; DispID: Integer; const Value: OleVariant);
Wenn du die DispID kennst (lässt sich ja leicht nachschauen):
Delphi-Quellcode:
var
   objekt : OleVariant;
   if GetDispatchPropValue(object, 41) = 'test ' then ...
Ich dachte, dass ich mal ähnliche Funktionen wie oben im der VCL gefunden habe, bei denen anstelle der
DispID das Property als String übergeben wird; finde die Stelle aber nicht mehr :-/


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