![]() |
ComboBox item in tabelle speichern
Folgendes Problem:
Die ComboBox (Combo_firma) wird mit Daten aus einer Tabelle wie folgt gefüllt:
Delphi-Quellcode:
// Hole die Firmen-Bezeichung aus der Datenbank
procedure Tdm_user.GetFirma(List: TStrings); begin with dm_firma.tbl_firma do begin Open; First; while not eof do begin List.Add((FieldByName('Ausbildungsbetrieb').AsString) + ' ' + (FieldByName('Ort').AsString)); Next; end; Close; end; end; Ich möchte nun, dass die Firma, die ich ja aus tbl_firma ziehe, in einer Tabelle namens tbl_user speichern. Natürlich soll dann nicht der String, sondern die ID des ComboItems gespeichert werden. Hierzu ein Ansatz:
Delphi-Quellcode:
So, leider funktioniert das ja nicht, weil, wie obenstehender Quellcode zeigt, in der ComboBox zwei Felder ausgegeben werden (Firmen-Name & Ort).
Procedure Tdm_userverw.UserEintragen;
Var node: Pfirmeninfo; fid : integer; begin node:= Pfirmeninfo(dlg_users_bearbeiten.combo_firma.Items.Objects[dlg_users_bearbeiten.combo_firma.ItemIndex]); FieldByName('Firmen_ID').AsInteger := node^.I0; end; Gibt es eine Möglichkeit, trotzdem irgendwie die ID und nicht den String zu speichern? Das letzte Wort, also den Ort, vorher "abschneiden" funktioniert auch nicht, weil ich ja nicht weiß, wieviele Zeichen der Ort hat, oder wann ein Leerzeichen kommt. |
Re: ComboBox item in tabelle speichern
Hallo,
du kannst dir mal die Methode TStrings.AddObject anschauen. Du kannst beispielsweise in jedem Schleifendurchlauf folgendes machen
Delphi-Quellcode:
Gruß
while not eof do begin
LKey := FieldByNAme('ID').AsInteger; List.AddObject((FieldByName('Ausbildungsbetrieb').AsString) + ' ' + (FieldByName('Ort').AsString), Pointer(LKey)); Next; end; Ken |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:16 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