![]() |
Delphi-Version: 2005
RTTI - Rad 2007
Hallo zusammen,
gibt es eine Möglichkeit, public-Properties (nicht PUBLISHED) mit Hilfe einer wie auch immer gearteten RTTI auszulesen? Mit Rad 2010 ist das ja nicht das große Problem... allerdings bin ich grade mit dem Rad Studio 2007 beschäftigt. Hier gibt es einen Unit Typinfo, diese ermöglicht es mir auf published Properties zu zu greifen. Weder ![]() noch ![]() haben bisher zufrieden stellende Ansätze zu Tage gefördert. Ein reines durchsuchen nach RTTI hilft mir auch nicht viel ... ihr glaubt gar nicht wieviel startTime(s) es gibt :(. Bin langsam echt verzweifelt ... falls das nicht geht, gibt es eine schickere Möglichkeit public in published zu wandeln? Vllt per Compilerschalter oder so? Vielen Dank, Tobi |
AW: RTTI - Rad 2007
|
AW: RTTI - Rad 2007
Hallo,
das klappt nicht zum einen konnt ich erst nicht drauf zu greifen, daher musste ich mir die in die Unit kopieren .... Zum anderen findet auch diese Methode nur Published-Eigenschaften. Hier mal mein Code zum austesten:
Delphi-Quellcode:
type
TForm4 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private FValue : Integer; { Private-Deklarationen } procedure Foo(AObject : TObject); public property Scaleunit: Integer read FValue write FValue ; { Public-Deklarationen } end;
Delphi-Quellcode:
Noch mal vielen Dank,
function FindPropInfo(Instance: TObject; const PropName: string): PPropInfo;
begin Result := GetPropInfo(Instance, PropName); if Result = nil then raise Exception.Create('Prop konnte nicht gefunden werden: '+PropName); end; procedure TForm4.Foo(AObject: TObject); begin ShowMessage( AObject.ClassName); ShowMessage(IntToStr( GetOrdProp(GetObjectProp(AObject,'Font'), 'Size'))); // ReadProp(AObject, 'Value'); if FindPropInfo(AObject, 'Value') = nil then ShowMessage('funzt'); end; procedure TForm4.FormCreate(Sender: TObject); begin FValue := 23; Foo(Self); end; Tobi |
AW: RTTI - Rad 2007
RTTI ... das ist doch der Unterschied zwischen Public und Published
Zitat:
|
AW: RTTI - Rad 2007
Zitat:
Vielen dank nochmal, wenn noch jemand was weiß, würd mich freun wenn ich nach meinem Urlaub in 2 Wochen hier noch was finden würde ;). Viele Grüße, Tobi |
AW: RTTI - Rad 2007
Was willst du eigentlich damit erreichen?
PS: eventuell hilft ja auch schon
Delphi-Quellcode:
, bzw.
{$M+}
Delphi-Quellcode:
{$TYPEINFO ON}
|
AW: RTTI - Rad 2007
Zitat:
Die Suchtags machen das derzeit leider nicht mit, aber die URL funktioniert: ![]() |
AW: RTTI - Rad 2007
Zitat:
Naja in 10 Stunden geht der Flieger und ich bin erst mal weg. Vielleicht komm ich ja nach dem Urlaub auf die zündene Idee. Aber ich hab mich schon drauf ein gerichtet das ich erst mal ein paar Tage mit
Delphi-Quellcode:
beschäftigen darf.
if AObj is TClass then begin ...
Vielen dank und viele Grüße, Tobi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:51 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