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/)
-   -   Objecte in Combox ein und auslesen. (https://www.delphipraxis.net/172611-objecte-combox-ein-und-auslesen.html)

machstuhl 14. Jan 2013 10:16

Objecte in Combox ein und auslesen.
 
Hallo zusammen,

bei folgendem Fehler komme ich einfach nicht weiter.

Ich lese Daten aus einer Datenbank in eine StringList ein.
Delphi-Quellcode:
Liste.AddObject(String(Field('NAME')), TObject(Integer(Field('ID'))));
Diese Daten sollen dann in eine Combobox übergeben werden. Der Normale Listenwert wird korrekt übergeben, das Objekt spinnt jedoch rum und fügt eine Random-Integer-Zahl ein.
Delphi-Quellcode:
for I := 0 to Liste.Count -1 do
  begin
    cb_Anwender.Items.AddObject(Liste[I], TObject(Liste[I]));
    //cb_Anwender.Items.AddObject(Liste[I], TObject(Integer(Liste[I]))); // verschafft auch keine Besserung
  end;
Wo mache ich den Fehler?

DeddyH 14. Jan 2013 10:23

AW: Objecte in Combox ein und auslesen.
 
Delphi-Quellcode:
cb_Anwender.Items.AddObject(Liste[I], Liste.Objects[I]);
Ein Typecast hilft Dir ja nicht weiter, Du brauchst ja die originale Referenz.

terence14 14. Jan 2013 11:15

AW: Objecte in Combox ein und auslesen.
 
Kann es sein, daß die Zahl die Addresse im Speicher ist,
aber nicht der Inhalt des Zeigers, den Du verwendest?

(p statt p^)

MfG,
terence

sx2008 14. Jan 2013 12:15

AW: Objecte in Combox ein und auslesen.
 
Noch einfacher wäre der Aufruf
Delphi-Quellcode:
cb_Anwender.Items.AddStrings(Liste);
denn damit werden alle Einträge (inkl. Inhalt von Objects[]) an die Combobox-Items angehängt.

DeddyH 14. Jan 2013 12:19

AW: Objecte in Combox ein und auslesen.
 
Das ursprüngliche Einfügen würde ich eher so formulieren:
Delphi-Quellcode:
Liste.AddObject(Field('NAME').AsString, TObject(Field('ID').AsInteger));
Und wenn man nicht anfügen, sondern nur zuweisen will, sollte es ein
Delphi-Quellcode:
cb_Anwender.Items.Assign(Liste);
auch tun.
Achja, der Vollständigkeit halber noch das Auslesen der ID:
Delphi-Quellcode:
ID := integer(Liste.Objects[i]);


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