![]() |
RTTI {$M+}bei TObject
hi
ich versuche gerade meinem Objekt (von TList) abgeleitet published properties beizubringen, die ich dann mit CalssInfo und co auslesen kann. Ich dachte ich muß die Klasse nur mit {$M+} kompilierne und schon gibts ne ClassInfo für mein Objekt ... aber pustekuchen ClassInfo ist immer nil
Delphi-Quellcode:
muß ich sonst noch was beachten?
type
{$M+} TTest = class(TList) private fTT : integer; published property TT : integer read fTT write fTT; end; {$M-} |
Re: RTTI {$M+}bei TObject
Liste der Anhänge anzeigen (Anzahl: 1)
:shock:
Komisch, bei mir tuts das...
Delphi-Quellcode:
Unit Unit1;
Interface Uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; Type {$M+} TTest = Class( TList ) Private { Private-Deklarationen } FTT: Integer; Published { Published-Deklarationen } Property TT: Integer Read FTT Write FTT; End; {$M-} TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } FTe: TTest; public { Public-Deklarationen } Property Te: TTest Read FTe Write FTe; End; Var Form1: TForm1; Implementation {$R *.dfm} Procedure TForm1.FormCreate( Sender: TObject ); Begin Te := TTest.Create; End; Procedure TForm1.FormDestroy( Sender: TObject ); Begin If Assigned( Te ) Then FreeAndNil( FTe ); End; Procedure TForm1.Button1Click( Sender: TObject ); Begin Edit1.Text := IntToStr( Integer( Te.ClassInfo ) ); End; end. Bye Christian |
Re: RTTI {$M+}bei TObject
hmmmm ... bei so einem kleinen testprogramm funkt es auch bei mir, aber bei meiner großen applikation nicht ... so ein mist
gibt es da noch sonstige sachen, die da reinpfuschen können? (globable compilerdirektiven?) ... werde noch ein paar tests machen ... |
Re: RTTI {$M+}bei TObject
Hmm, hab das gerade in einem etwas größerem getestet und es funktioniert auch da... :duck:
Da ich eigendlich weiter nie mit der RTTI gearbeitet habe, kann ich dir das auch nicht sagen... hast du mal statt TObject mal TPersistent getestet? Bye Christian |
Re: RTTI {$M+}bei TObject
also bei TPersistent wird funktionieren, das hats ja schon von haus aus das +M, aber ich brauche es für eine TList, und will diese nicht extra neu machen und von TPersistent ableiten ....
ich probiere jetzt mal die kleine Testklasse in meinem großen projekt, dann weiss ich wenigstens, obs an compilerdirektiven oder an der klasse liegt .... |
Re: RTTI {$M+}bei TObject
habs schon ...
Delphi-Quellcode:
hab die erste vordefinition (oder wie nennt man das?) der klasse übersehen, und da war noch kein M+ definiert.
type
TTest = class; << hier merkt er sich anscheinend schon, das er KEINE Typeinfo braucht ... {$M+} TTest = class(TList) private fTT : integer; published property TT : integer read fTT write fTT; end; {$M-} hab das M+ ganz nach oben gestellt und nun funkts ... |
Re: RTTI {$M+}bei TObject
Ah, gut möglich...
Schön zu wissen :-D Bye Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:45 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