Hi,
wenn die ComboBox als Selektor für deine Datensätze herhalten soll, dann würde ich mir beim Befüllen der ComboBox.Items den Schlüssel des Spieler-Datensatzes merken. Das geht mit der Methode AddObject(). Angenommen es gibt ein eindeutiges Feld NICKNAME:
Delphi-Quellcode:
begin
with ComboBox
do
begin
Items.Clear;
Query.SQL.Text := '
SELECT id, nickname FROM tbl ORDER BY nickname';
Query.Open;
while not Query.Eof
do
begin
Items.AddObject(
Query.FieldByName('
NICKNAME').AsString, Pointer(
Query.FieldByName('
ID').AsInteger));
Query.Next;
end;
Query.Close;
end;
end;
Wenn du dann noch das Ereignis OnChange der ComboBox bedienst, dann kannst du deine Edit-Felder füllen:
Delphi-Quellcode:
procedure TDemoForm.ComboBox1Change(Sender: TObject);
begin
with Sender
as TComboBox
do
if (ItemIndex <> -1)
then
begin
Query.SQL.Text := '
SELECT * FROM spieler WHERE id = :id';
Query.Params.ParamByName('
id').AsInteger := Integer(Items.Objects[ItemIndex]);
Query.Open;
NachnameEdit.Text :=
Query.FieldByName('
NACHNAME').AsString;
// ...
Query.Close;
end;
end;
Allerdings kannst du dir das Leben auch leichter machen, wenn du die datensensitiven Controls (TDBEdit) verwendest. Insbesondere, wenn du die Daten nicht nur Anzeigen, sondern auch verändern möchtest.
Getippt und nicht getestet.
Freundliche Grüße vom marabu