Einzelnen Beitrag anzeigen

seppelon

Registriert seit: 19. Okt 2008
6 Beiträge
 
#1

Listbox zweiten Wert pro Eintrag hinterlegen

  Alt 1. Mär 2009, 13:10
Moin moin,

ich hätte da mal gerne ein Problem.
Ich hab bisher nur etwas Kleinkram mit Delphi programmiert und scheitere jetzt an einer wahrscheinlich simplen Problemstellung.
Meine Listbox soll mehrere Einträge bekommen, diese repräsentieren jeweils einen Datensatz aus einer MySQL-Tabelle - soweit noch kein Problem. Ich verwende folgende Schleife um die Datensätze nach einander in die Listbox zu schreiben:

Delphi-Quellcode:
For i := 1 to Form1.FResult.RowsCount do
begin
Listbox1.Items.Add(Form1.FResult.FieldValueByName('name'));
Form1.FResult.Next;
end;
Jetzt wird mir für jeden Datensatz ein Eintrag in der Listbox angezeigt. Ich möchte nun durch Doppelklicken auf einen Eintrag ein Formular öffnen, in dem ich weitere Parameter des Datensatzen editieren kann, also ihn verändern kann.
Dazu müsste ich mit einer erneuten SQL-Query die restlichen Parameter des Datensatzes nachladen.
Jetzt komme ich zum eigentlichen Problem: Es kann zwei oder mehr Datensätze geben die im Feld 'name', dem in der Listbox angezeigten, identische Werte enthalten.
Also würde ich nun zusätzlich zum angezeigten Text noch den primary Key des Datensatzes in der Listbox hinterlegen wollen - natürlich nicht sichtbar.
Aaaaber wie geht das?
Nach dem ich schon diverse Beiträge zu ähnlichen Problemen gelesen habe bin ich nun langsam am Ende.
Da wird von eigenen Klassen definieren gesprochen und von Objekten hinzufügen und von weiß ich was noch allem.
Für mich sah jetzt die Prozedur Listbox.Items.AddObject nach dem aus was ich brauche(?!).
Allerdings hat mir weder die Delphi-Hilfe noch irgendein Forenbeitrag wirklich vermitteln können wie ich das ganze verwende.

Items.AddObject('Name=Wert',Pointer(43) Das habe ich mal in einem Beitrag gefunden - werde ich leider auch nicht besonders schlau draus. Instinktiv würde ich da jetzt als Wert den anzuzeigenden String übergeben. Aber was hat es mit Pointer(43) auf sich? Kann ich da meinen primary Key (int) übergeben? Wie greif ich auf den Wert später wieder zu?

Vielen Dank für eure Hilfe
ein Delphi-N00b
  Mit Zitat antworten Zitat