Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi versteckte Felder in ComboBox ? (https://www.delphipraxis.net/10017-versteckte-felder-combobox.html)

mickmack 9. Okt 2003 17:36


versteckte Felder in ComboBox ?
 
Hallo zusammen,

ich habe folgendes Problem:

Und zwar habe ich mir zwei doppeltverkettete Listen erstellt.
HIer ein vereinfachtetes Beispiel anhand der Typendeklaration.
Delphi-Quellcode:
type

 TID = 1..2000; //Typ fuer IDs

 PPerson = ^TPerson;
 TPerson = record
            Name:String;
            Nachname:String;
            Automarke: TID; //speichert die passende ID aus der Liste Automarken
           end;

 PAutomarke = TAutomarke;
 TAutomarke = record
               ID:TID;
               Marke: String;
              end;
Ich möchte nun die Daten für TPerson über Editfelder eingeben. Nur Automarke soll über eine ComboBox ausgewählt werden können. Dazu wird beim Starten des Form die Liste mit TAutomarke in die ComboBox eingelesen, so dass die Markennamen aller in der Liste vorhandenen Marken in der CB erscheinen.
Jetzt besteht aber folgendes Problem:
In der Liste mit TPerson möchte ich natürlich nicht den Markennamen speichern, sondern die eindeutige ID. DOch durch die CB wurde ja nur der Markenname ausgewählt. Wie komme ich jetzt wieder an die ID?
ALso meine Idee, gibt es eine Möglichkeit in der ComboBox die ID versteckt mitzuspeichern? Oder gibt es sogar noch eine elegantere Lösungen?
Für einen Tip wäre ich sehr dankbar.

Christian Seehase 9. Okt 2003 18:12

Re: versteckte Felder in ComboBox ?
 
Moin Mickmack,

Zitat:

Zitat von Mickmack
gibt es eine Möglichkeit in der ComboBox die ID versteckt mitzuspeichern?

ja, gibt's.
Die Items kann man mit AddObject hinzufügen, wobei Du dann einfach die ID mittels

Delphi-Quellcode:
ComboBox1.Items.AddObject('Text in der Combobox',TObject(ID));
mit angeben kannst.

Ein Tip noch:
Bei RichEdit.Lines und Memo.Lines klappt das nicht. Hier wird das Objekt ignoriert.

mickmack 9. Okt 2003 18:50

Re: versteckte Felder in ComboBox ?
 
Hallo Chris,

ich denke, dass ist genau das was ich brauche. Aber wie wandel ich denn wieder zurück?
Bisher habe ich folgendes auf die Beine gestellt:
Delphi-Quellcode:
recPerson.Automarke := ??? FrmMain.CBMarke.Items.Objects[FrmMain.CBMarke.ItemIndex] ???;
Bin ich auf der richtigen Spur?
Ich vermute es fehlt noch eine Typisierung. :?:

Aber auf jedenfall schon mal Danke für die letzte Antwort
:-D

Christian Seehase 9. Okt 2003 19:15

Re: versteckte Felder in ComboBox ?
 
Moin Mickmack,

mal als Beispiel um das wieder in einen Integer zu verwandeln:

Code:
[color=red]integer([/color]FrmMain.CBMarke.Items.Objects[FrmMain.CBMarke.ItemIndex][color=red])[/color];

mickmack 9. Okt 2003 19:17

Re: versteckte Felder in ComboBox ?
 
jo danke,
im Moment als die Mail kam, hab ichs auch gerade rausgefunden :-D


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