![]() |
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:
in die Hosen geht. (Type ist dort ein Integer)
if (Objekt.Type=bla) then
Kann ich ohne größere Kopfstände das reservierte Wort umgehen? Thomasch |
Re: reserviertes Wort umgehen
Wenn du auf frühe Bindung umstellst wird sowas von Typlibrary-Importer von Delphi automatisch erledigt.
|
Re: reserviertes Wort umgehen
Mit früher Bindung bekomme ich leider ganz andere Probleme, wegen denen ich auf late binding umgestiegen bin.
Thomasch |
Re: reserviertes Wort umgehen
Hi,
fall Du Delphi 2005 hast, kannst Du Bezeichner, die eigentlich reserviert sind, mit einem & ansprechen.
Delphi-Quellcode:
Offiziell geht das nur unter .NET (wofür das Feature eigentlich geschaffen wurde), aber es kompiliert auch unter Win32.
var
&Unit: Integer; begin &Unit := 20; end; mfG mirage228 |
Re: reserviertes Wort umgehen
Wenn du ein _TLB.pas verwendest, dann kannst du doch dort alle Namen umbiegen.
|
Re: reserviertes Wort umgehen
Zitat:
|
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. |
Re: reserviertes Wort umgehen
Zitat:
Wenn dir eine Funktion in der frühen Bindung probleme bereitet so nimm doch für diese Funktion die späte Bindung. |
Re: reserviertes Wort umgehen
In der Unit AxCtrls gibt es:
Delphi-Quellcode:
Wenn du die DispID kennst (lässt sich ja leicht nachschauen):
function GetDispatchPropValue(Disp: IDispatch; DispID: Integer): OleVariant;
procedure SetDispatchPropValue(Disp: IDispatch; DispID: Integer; const Value: OleVariant);
Delphi-Quellcode:
Ich dachte, dass ich mal ähnliche Funktionen wie oben im der VCL gefunden habe, bei denen anstelle der
var
objekt : OleVariant; if GetDispatchPropValue(object, 41) = 'test ' then ... DispID das Property als String übergeben wird; finde die Stelle aber nicht mehr :-/ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:31 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