Man könnte eine Routine schreiben, die die Mannschaften ermittelt und in einem TStrings-Objekt ablegt:
Delphi-Quellcode:
procedure TDeinForm.ListTeams(OutList: TStrings; ExcludeID: integer = 0);
begin
Assert(Assigned(OutList));
OutList.BeginUpdate;
try
OutList.Clear;
Query.SQL.Text := '
SELECT ID, Name FROM Mannschaften WHERE ID <> :id ORDER BY Name';
Query.ParamByName('
ID').Value := ExcludeID;
Query.Open;
while not Query.EOF
do
begin
OutList.AddObject(
Query.FieldByName('
Name').AsString,
TObject(
Query.FieldByName('
ID').AsInteger));
Query.Next;
end;
Query.Close;
finally
OutList.EndUpdate;
end;
end;
Damit könnte man dann 2 Standard-ComboBoxen befüllen:
Delphi-Quellcode:
ListTeams(cbbHeim.Items);
ListTeams(cbbGast.Items);
Um zu vermeiden, dass dieselbe Mannschaft als Heim- und Gastmannschaft zugewiesen werden kann, filtert man diese heraus, sobald eine Heimmannschaft ausgewählt wurde:
ListTeams(cbbGast.Items, integer(cbbHeim.Items.Objects[cbbHeim.ItemIndex]));
Alles getippt und nicht getestet.