Habe es mal in einem Testprojekt untersucht.
Die Probleme entstehen, wenn die Items-Aktualisierung innerhalb ComboBox.OnChange erfolgt.
Ich werde es daher in einem Timer nachträglich lösen.
Delphi-Quellcode:
unit fTestComboBox;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
ComboBox1: TComboBox;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ComboBox1.Items.Add('
x');
// nie ein Problem
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ComboBox1.Items.Clear;
// außerhalb OnChange kein Problem, Text bleibt erhalten
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
// Items-Select
begin
// Button1Click(Sender); <-- kein Problem
// Button2Click(Sender); <-- Text wird gelöscht
end;
end.