Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Record, Property "finden" lassen und füllen... (https://www.delphipraxis.net/161678-record-property-finden-lassen-und-fuellen.html)

Jackie1983 15. Jul 2011 09:09

Record, Property "finden" lassen und füllen...
 
Servus,

ich habe eine große Anzahl an Records. Diese Records werden als Property in einer Klasse verwendet.

Die Propertys müssen jetzt gefüllt werden. Dies möchte ich gerne automatisch machen. Ich habe früher schon mal darüber was gelesen, komme aber nicht mehr drauf.

Aus das hier
Code:
MeineKlasse.MeinRecord.MeineEigentschaft := 'Wert';
soll dass passieren
Code:
MeineKlasse.FindeRecord('MeinRecord').FindeEigenschaft('MeineEigenschaft') := 'Wert';
Ist sowas möglich?

himitsu 15. Jul 2011 09:32

AW: Record, Property "finden" lassen und füllen...
 
Ja, wenn du in dem Objekt das öffentliche MeinRecord als Objekt/Interface anlegst, welches intern seine Property auf den Record umleitet.
Könnte man notfalls auch mit der RTTI machen, eventuell kombiniert mit einem Interface in 'nem Variant.

Jackie1983 15. Jul 2011 09:55

AW: Record, Property "finden" lassen und füllen...
 
ah ok RTTI heist das, perfekt hab es hinbekommen, danke.

p80286 15. Jul 2011 13:31

AW: Record, Property "finden" lassen und füllen...
 
Ist ja schön das es klappt,
aber abgesen davon, daß ein Variablenname durch einen String ersetzt wird, sehe ich da keinen Vorteil. Die Schreibarbeit wird sogahr eher mehr, also was bringt's?
Und wie wird's in der Praxis eingesetzt?

Gruß
K-H

stahli 15. Jul 2011 14:01

AW: Record, Property "finden" lassen und füllen...
 
Das ist auf jeden Fall nützlich für die Serialisierung, um also Objektdaten zu speichern und wieder einzulesen.

FredlFesl 20. Jul 2011 08:11

AW: Record, Property "finden" lassen und füllen...
 
Ich persönlich bin da altmodisch. Wenn ich etwas zu serialisieren habe, oder mit Metadaten arbeite, dann sehe ich zu, das ich meine Eigenschaften aufzählbar mache. So z.B.

Delphi-Quellcode:
Type
  TMyClass = Class
    Property A : Variant;
    Property B : Variant;
    Property C : Variant;
    Property PropertyByIndex [index : Integer] : Variant;
  End;
Klar, ein wenig komplizierter ist es schon, weil eine Eigenschaft ja nicht notwendigerweise als Variant abgebildet werden kann.
Aber die Sache mit den Interfaces ist schon witzig, weil es darüber ja doch ginge...

stahli 20. Jul 2011 11:05

AW: Record, Property "finden" lassen und füllen...
 
Mit der neuen RTTI in Verbindung mit den Attributen lässt sich die Serialisierung aber sehr viel komfortabler und flexibler realisieren.
Hier ist mal ein Ansatz, wie ich das gelöst habe und auch ein Link auf ein Daniel-Video...

Das Schöne dabei ist, dass der Writer und Reader von außen erkennen kann, über welche Eigenschaften das Objekt verfügt und welche davon zur Serialisierung genutzt werden sollen.

FredlFesl 21. Jul 2011 06:16

AW: Record, Property "finden" lassen und füllen...
 
Zitat:

Zitat von stahli (Beitrag 1112693)
Mit der neuen RTTI

Mist, die hab ich nicht.. Egal. Delphi lernt dazu ;-)


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