![]() |
Feld direkt per Name ansprechen?
Moin,
Irgendwie fehlt mir gerade etwas. Angenommen ich habe ein Array oder etwas vergleichbares, mit A,1,1 und B,2,2, wie kann ich dann meineVariable['A'].ErsteProp aufrufen? Oder gibt es nichts vergleichbares in Delphi? |
AW: Feld direkt per Name ansprechen?
Sorry, aber ich habe noch nicht verstanden, was du eigentlich machen willst.
|
AW: Feld direkt per Name ansprechen?
Ich möchte eine Liste/Dictionary/Struct oder ähnliches anlegen, dass in der ersten Eigenschaft einen Indize enthält, über das ich das Element direkt ansprechen kann:
So etwas wie:
Delphi-Quellcode:
Und dann so ansprechbar:
type
TMyList = packed record MyName: string; Prop1: string; Prop2: Integer; end; var MyList: array of TMyList
Delphi-Quellcode:
Anstatt mittels for nach dem Element zu suchen.
MyList['MeinName'].Prop1 := 'MeinName';
|
AW: Feld direkt per Name ansprechen?
Zitat:
![]() 1. Klasse für deine Properties TMeineKlasse erstellen 2. in das erzeugte TObjectDictionary<string, TMeineKlasse> das erzeugte Object hinzufügen Suchen:
Delphi-Quellcode:
Bearbeiten:
Variable := MyDictionary['Test']; // in der Variable (TMeineKlasse) ist dann das Objekt wenn gefunden, ansonsten nil.
...
Delphi-Quellcode:
:wink:
Variable := MyDictionary['Test']
Variable.Prop1 := 'Bla' ... MyDictionary['Test'].Prop1 := 'Bla'; PS: auch ein Record sollte gehen. Dann aber ein TDictionary. TObjectDictionary räumt die Objekte weg. |
AW: Feld direkt per Name ansprechen?
Zitat:
|
AW: Feld direkt per Name ansprechen?
Ich hatte ja auf eine einfachere Variante gehofft, aber dann schaue ich mir das mal an.
PS: Dein Edit zu spät gesehen, so etwas habe ich mir vorgestellt. Ich versuche mich mal daran. |
AW: Feld direkt per Name ansprechen?
Zitat:
Die obersten zwei gehen. Man muss nur die Variable zurückschreiben. haentschmans zweiter Codeblock enthält zwei völlig unterschiedliche Herangehensweisen vor und nach den Ellipsen. Vermutlich wollte er das untere so nicht schreiben, es würde aber bei Klassen gehen. |
AW: Feld direkt per Name ansprechen?
Zitat:
|
AW: Feld direkt per Name ansprechen?
Zitat:
Alternativ kannst du natürlich immer über die RTTI auf Felder/Eigenschaften zugreifen und somit Objekte serialisieren. Gibt dazu schon genügend Beispiele. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:07 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 by Thomas Breitkreuz