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 Probleme mit AddObject (https://www.delphipraxis.net/190135-probleme-mit-addobject.html)

Yikes 2. Sep 2016 09:22

Probleme mit AddObject
 
Hi, totaler Delphi Newb hier, bitte seid nachsichtig.

Ich habe eine ComboBox in der ich mir Vornamen und Namen aus einer Datenbank (FireDAC über DataSnap Server) anzeigen lasse.
Delphi-Quellcode:
while not FDStoredProc1.eof do begin
  CmbEdtUserName.items.add(FDStoredProc1.FieldByName('Vorname').AsString + ' ' + FDStoredProc1.FieldByName('Name').AsString); //funktioniert
  FDStoredProc1.Next;
Nun brauche ich aber die zugehörige ID aus der Datenbank. Da das aber nicht ohne weiteres geht, benötige ich anscheined Items.AddObject. Ab hier weiß ich absolut nicht weiter. Mir fehlt die nötige OOP-Erfahrung.

Anscheinend muss ich eine neue Klasse schreiben (mit Integer Parameter?), ein Objekt erzeugen und darin irgendwie den Wert aus der Query speichern? Von all diesen Dingen habe ich absolut nil Plan. Wäre sehr nett, wenn mir jemand weiterhelfen könnte.

Papaschlumpf73 2. Sep 2016 09:29

AW: Probleme mit AddObject
 
Statt Items.Add nimmst Du einfach
Delphi-Quellcode:
Items.AddObject('dein String', TObject(ID))
ID muss vom Typ Integer sein. Z.B. FDStoredProc1.FieldByName('ID').Value


Die ID des ausgewählten Eintrags kannst Du dann so auslesen:
Delphi-Quellcode:
ID := Integer(CmbEdtUserName.items.Objects[CmbEdtUserName.ItemIndex]);

mkinzler 2. Sep 2016 09:31

AW: Probleme mit AddObject
 
while not FDStoredProc1.eof do
Delphi-Quellcode:
begin
  CmbEdtUserName.AddItem(FDStoredProc1.FieldByName('Vorname').AsString + ' ' + FDStoredProc1.FieldByName('Name').AsString, TObject( FDStoredProc1.FieldByName('ID').Value)); //funktioniert
  FDStoredProc1.Next;
end;

Yikes 2. Sep 2016 10:00

AW: Probleme mit AddObject
 
Zitat:

Zitat von Papaschlumpf73 (Beitrag 1346554)
Statt Items.Add nimmst Du einfach
Delphi-Quellcode:
Items.AddObject('dein String', TObject(ID))
ID muss vom Typ Integer sein. Z.B. FDStoredProc1.FieldByName('ID').Value


Die ID des ausgewählten Eintrags kannst Du dann so auslesen:
Delphi-Quellcode:
ID := Integer(CmbEdtUserName.items.Objects[CmbEdtUserName.ItemIndex]);

Danke!


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