Hallo,
in einer Anwendung generiere ich dyn. Objekte auf einem TPanel einer Form. Nun würde ich gerne auf die Eigenschaften zugreifen wobei nicht bekannt ist um welches Objekt es sich handelt. Momentan frage ich den Typ des Objektes ab, d.h. od es ein TPanel oder TDBEdit etc. ist. Dann setze ich nach entsprechender Fallunterscheidung die Properties.
Das gibt nur leider viel Code...
Weiss jemand aus dem Stehgreif wie ich auf die Property List eines Objektes zur Laufzeit zugreifen kann? Das muss ja gehen. Ich habe schon mal bei den JIT Definitionen reingeschaut aber hatte noch nicht die Zeit das zu vertiefen.
Ev. weiss ja jemand Rat.
Gruss,
Tibor
Zugriff auf Properties bei dyn. erzeugten Objekten
RTTI ist eine gute Sache, aber was hilft dir das abfragen der Property Liste in deinem Fall?
Du muss doch sowieso wissen, bei welchem Objekt du welche Properties bearbeiten willst.
Ich würde dann eher den Vererbungsbaum hochwandern.
Also z.B.
if Obj is TControl then
Eigenschaften von TControl bearbeiten (kann mehrere deiner Objekte betreffen)
if Obj is TPanel then
Spez. Eigenschaften von TPanel bearbeiten
if Obj is TDBEdit then
Spez. Eigenschaften von TDBEdit bearbeiten
Du muss doch sowieso wissen, bei welchem Objekt du welche Properties bearbeiten willst.
Ich würde dann eher den Vererbungsbaum hochwandern.
Also z.B.
if Obj is TControl then
Eigenschaften von TControl bearbeiten (kann mehrere deiner Objekte betreffen)
if Obj is TPanel then
Spez. Eigenschaften von TPanel bearbeiten
if Obj is TDBEdit then
Spez. Eigenschaften von TDBEdit bearbeiten
-
- Beiträge: 131
- Registriert: Sa 5. Apr 2008, 17:57
- OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
- CPU-Target: 32Bit/64Bit
- Wohnort: Ulm
genau so mache ich es zur Zeit, nur würde ich gerne Code einsparen und das Ganze allgemein lösen.
D.h. über die Property List herausbekommen um welchen Typ von Objekt es sich handelt und dann auch entsprechend die Properties bearbeiten.
Es funktioniert natürlich so aber wie gesagt ich hätte es gern optimiert...
Gruss,
Tibor
D.h. über die Property List herausbekommen um welchen Typ von Objekt es sich handelt und dann auch entsprechend die Properties bearbeiten.
Es funktioniert natürlich so aber wie gesagt ich hätte es gern optimiert...
Gruss,
Tibor
Ich versteh grad nicht, wie du das meinst. Kannst du mal ein Beispiel machen, wie das genau laufen soll?piper62 hat geschrieben: D.h. über die Property List herausbekommen um welchen Typ von Objekt es sich handelt und dann auch entsprechend die Properties bearbeiten.
Es funktioniert natürlich so aber wie gesagt ich hätte es gern optimiert...
Ich sehe das auch so wie Christian. Das ist gut für Property-Editoren, wo letztlich der User den Wert bestimmt, aber im Code selber kann ich da keinen Vorteil erkennen.
Es sei denn, du willst generell alle Integer Typen z.B. inkrementieren (Width, Tag etc..) was für mich aber auch keinen Sinn macht.