Stimme Stahli voll zu - das müsste Dein Problem lösen, auch wenn ich es jetzt nicht unter D2006 getestet habe.
Ganz schnell hingetippt: Hier hast Du drei Möglichkeiten, von denen doch mindestens eine verwendbar sein müsste (die obige ist auch dabei). Drei ComboBoxen - ein Eintrag gewählt - löscht den betreffenden Eintrag aus allen drei Listen...
Delphi-Quellcode:
procedure TForm1.ComboBox1Click(Sender: TObject);
var
choice: byte;
ctext: string;
begin
choice := ComboBox1.ItemIndex;
ctext := ComboBox1.Text;
ComboBox1.Items.Delete(choice);
choice := ComboBox2.Items.IndexOf(ctext);
ComboBox2.Items.Delete(choice);
choice := ComboBox3.Items.IndexOf(ctext);
ComboBox3.Items.Delete(choice);
end;
procedure TForm1.ComboBox2Click(Sender: TObject);
var
ctext: string;
choice: byte;
begin
choice := ComboBox2.ItemIndex;
cText := ComboBox2.Items[choice];
ComboBox1.Items.Delete(ComboBox1.Items.IndexOf(ctext));
ComboBox3.Items.Delete(ComboBox3.Items.IndexOf(ctext));
ComboBox2.Items.Delete(choice);
end;
procedure TForm1.ComboBox3Click(Sender: TObject);
begin
ComboBox1.Items.Delete(ComboBox1.Items.IndexOf(ComboBox3.Text));
ComboBox2.Items.Delete(ComboBox2.Items.IndexOf(ComboBox3.Text));
ComboBox3.Items.Delete(ComboBox3.Items.IndexOf(ComboBox3.Text));
end;
Es ist immer vernünftig, wann immer möglich bei ListBox und ComboBox auf die Original-Einträge zurückzugreifen. Dadurch haben kleinere oder größere Unstimmigkeiten keine Chance, Unfug zu erzeugen, selbst 'En glisch' nicht! Könnte es sein, dass in der String-Liste für eine Deiner ComboBoxen 'Englisch ' steht?
LG, Günther