![]() |
Erzeugen von Namens-Wertepaaren in Listbox
Hallo!
Ich habe ein kleines aber feines Problem, bei dem die Hilfe in Delphi 7 leider nicht weiterhilft. Folgendes soll realisiert werden: Beispiel: Sichtbarer Eintrag in der Liste z. B. "Meier" Daraus ergibt sich für den Ersten Eintrag der Index 0. Jetzt möchte ich aber für den 1. Eintrag eine Value Eigenschaft hinterlegen, so dass nach Klick auf die Listbox z.B. der Beruf aus der Value Eigenschaft ausgelesen wird, z.B. "Programmierer". Das Eintragen von Werten in eine Listbox ist nicht das Problem, sondern die Frage, wie ich den "maskierten" Wert "Programmierer" wieder auslesen kann. Wie erzeuge ich also das Wertepaar "Meier / Programmierer" und lese es über die Eigenschaften wieder aus(wahrscheinlich irgendwie mit TStrings). Die Methoden wie Klick auf Listbox und evtl. Messageboxen für die Ausgabe von Daten sind hier nicht(!!) von Interesse, sondern wirklich, wahrscheinlich die 2-3 Zeilen, wie man für diese Fragestellung vorghehen muss. NameValueSeparator war ein Hinweis in der Hilfe, der mich aber auch nicht weiter brachte. Vielen Dank für die Hilfe!!!!!! |
Re: Erzeugen von Namens-Wertepaaren in Listbox
Moin moin
Mal angenommen, dass du die Werte in die Listbox selber einfügst: Erstelle dir eine Variable vom Typ TStringList.
Delphi-Quellcode:
Beim Hinzufügen von Einträgen in die Listbox, (z.B. Meier) fügst du dann einfach den "verborgenen Text" (in diesem Fall dann wohl "Programmierer") an deine StringList an.
...
var verborgenenText : TStringList; . . verborgenenerText := TStringList.create; Somit haben dann alle Einträge in der Listbox, den selben Index wie die Einträge in der StringList. Sprich über:
Delphi-Quellcode:
erhälst du den "verborgenen text" zu dem Eintrag der Listbox.
verborgenerText.items[listbox1.itemindex]
schönen Gruß Sam [edit] Herzlich Willkommen in der Delphi-Praxis [/edit] |
Re: Erzeugen von Namens-Wertepaaren in Listbox
Danke für die Antwort.
Aber was ich möchte ist, dass ich die Listbox auf Sorted stelle um mir eine Sortierung der Einträge von Hand zu sparen. Deine Lösung ist einfach wie einleuchtend, aber dann würden die Indizes nicht mehr übereinstimmen. Deswegen schwebt mir irgendwas wie: Listbox.Items[listbox.itemindex].Value := "Programmierer"; Listbox.Items[listbox1.itemindex] ="Meier"; vor. Dieser Code ist natürlich falsch, soll aber in etwa andeuten,wohin die Reise gehen soll..;) |
Re: Erzeugen von Namens-Wertepaaren in Listbox
ahso
Wenn du in der Variable "verborgenerText" (s.o.) den Text in der Form "Meier=Programmierer" anfügst, (ohne Gänsefüsschen) kannst du über
Delphi-Quellcode:
an den Text "Programmierer" kommen.
verborgenerText.items.values['Meier']
Also so in der Form:
Delphi-Quellcode:
verborgenerText.items.values[listbox1.items[listbox1.itemindex]]
nich getestet :gruebel: schönen Gruß Sam Nachtrag: Das funktioniert dann aber imho nur noch für eindeutige Werte in der Listbox. Alternativ kannst du dann ja auch die StrinList sortieren lassen und wie oben beschrieben mithilfe des itemindex sowie ![]() ![]() |
Re: Erzeugen von Namens-Wertepaaren in Listbox
Liste der Anhänge anzeigen (Anzahl: 1)
Hai Christian123,
das würde ich mit einem Object lösen. Das ist die sauberste Methode. Im Anhang mal ein Demo. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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