![]() |
ComboBox.Items.AddObject?
Hallo,
ich brauch mal wieder eure Hilfe! Ich möchte eine ComboBox mit AddObject füllen! Das Programm holt sich aus einer DB Namen,Vornamen und PersonenID von bestimmten Personen! Nach dem Anwählen soll er die PersonenID in eine andere DB schreiben. Die PersonenID soll aber nicht in der ComboBox stehen. Wie kann ich die Namen,Vorname (als String) und die PersonenID (als Objekt) mit AddObject in die ComboBox einfügen? Und wie kann ich das Objekt des gewählten Eintrages wieder auslesen? Ok, vielen Dank! Bis denne! Delphi-Coder |
Hallo Delphi-Coder,
falls die ID ein Integer Wert ist, kann man sich einen Trick zu nutze machen, der darauf basiert, dass ein TObject nicht anderes als eine Adresse ist.
Delphi-Quellcode:
Du castest die ID einfach als TObject. Und beim Auslesen kehrst du die Umwandlung um. Wenn du lieber eine saubere Lösung hättest :mrgreen: , sag bescheid, die kann ich auch liefern.
...
cb1.Items.AddObject(Table1Vorname.AsString +' ' +Table1Nachname.AsString, TObject(ID)); { ID des ersten Eintrages anzeigen } ShowMessage(IntToStr(Integer(cb1.Items.Objects[0]))); |
Danke für die schnelle Hilfe! Diese Lösung reicht mir schon! Ich werd's gleich mal probieren...
Delphi-Coder EDIT: Hat alles funktioniert... Danke :D |
AW: ComboBox.Items.AddObject?
Warum geht das eigentlich mit Integer und nicht mit Int64? Hier mal ein Beispiel - als Ergebnis kommt immer ein 32bit-Integer (max. 10 Stellen) raus...
Delphi-Quellcode:
var S,R: Int64;
begin S:=123456789012345; ListBox1.Items.Clear; ListBox1.Items.AddObject('Testeintrag', TObject(S)); R:=Int64(ListBox1.Items.Objects[0]); showmessage(R.ToString); end; |
AW: ComboBox.Items.AddObject?
Weil man davon ausgeht, nicht mehr als maxInt Einträge zu benötigen, und somit nur halb so viel Speicherplatz benötigt als mit Int64 vielen Einträgen... ;)
Sherlock |
AW: ComboBox.Items.AddObject?
Schade, ich habe nur ca. 100 Einträge. Die Referenz-ID aus einem anderen System sind jedoch Int64. Zu blöd…
|
AW: ComboBox.Items.AddObject?
Du könntest dir natürlich auch eine Klasse bauen die den Wert enthält. Eventuell kannst du da ja noch ein paar zusätzliche Werte mit reinpacken. Ansonsten wäre eine klasse wohl etwas overkill.
|
AW: ComboBox.Items.AddObject?
Zitat:
|
AW: ComboBox.Items.AddObject?
Oder du machst das, wie es in der VCL eigentlich vorgesehn ist?
Bau dir ein Datenobjekt, pack da deine ID rein und häng dieses Objekt an das Item. :roll: |
AW: ComboBox.Items.AddObject?
Danke für die Tipps...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 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