![]() |
Untervariablennamen eines Records in Variable speichern?
Hallo
ich habe folgenden Record:
Code:
Nun möchte ich nach diesen 6 Angaben sortieren können. Da ich nicht für jeden Vergleich eine eigene Prozedur schreiben will, würde ich gerne wissen ob es eine Möglichkeit gibt die Namen der "Untervariablen" des Records in einer anderen Variablen zu speichern.
type
PZeiger = ^TElement; TElement = record rechts: PZeiger; nachname, vorname, strasse, plz, ort, email : string; end; Im Klartext: Ich will anstelle von
Code:
einfach nur
...
if lauf.rechts.nachname>lauf.rechts.rechts.nachname ... if lauf.rechts.vorname>lauf.rechts.rechts.vorname ... if lauf.rechts.email>lauf.rechts.rechts.email
Code:
schreiben, wobei der variable vorher dann halt nachname, vorname usw. zugewiesen wird.
if lauf.rechts.variable>lauf.rechts.rechts.variable
Ist das möglich oder gibts da andere Möglichkeiten? |
Re: Untervariablennamen eines Records in Variable speichern?
Es gibt eine Möglichkeit, dabei musst du einen pointer auf die Strings speichern und kannst dann über diese zugreifen.
Beispiel:
Delphi-Quellcode:
Je nach dem welchen wert "LOffSet" hat würdest du einen anderen String des Records angezeigt bekommen. Anstelle des Showmessage brauchst du also nur deinen vergleich in der "ShowTheString" machen.
procedure ShowTheString(AElement: TElement; AOffset: Cardinal);
begin ShowMessage(PString(Cardinal(@AElement.nachname) + AOffSet)^); end; [...] type PString = ^String; var LElement: TElement; LOffSet: Cardinal; begin LElement.nachname := 'Nachname'; LElement.vorname := 'Vorname'; LElement.strasse := 'Straße'; LElement.plz := 'PLZ'; LElement.ort := 'Ort'; LElement.email := 'Email'; //LOffSet := 0; //Nachname //LOffSet := 4; //Vorname //LOffSet := 8; //Straße LOffSet := 12; //PLZ //LOffSet := 16; //Ort //LOffSet := 20; //Email ShowTheString(LElement, LOffSet); end; |
Re: Untervariablennamen eines Records in Variable speichern?
Jau, vielen Dank, es funktioniert. :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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