Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#1

Ich hab hier ein alltägliches Problem ...

  Alt 8. Okt 2008, 15:19
... und komme dennoch nicht weiter. Folgendes, ich habe eine ComboBox und ein Editfeld. Die ComboBox ist mit Werten gefüllt. Wenn ich einen der Werte auswähle, soll der Wert in das EditFeld geschrieben werden, wobei der Wert auch in der ComboBox sichtbar bleiben soll. Gebe ich aber einen eigenen Wert in das Editfeld ein, soll die ComboBox den ItemIndex = -1 bekommen.

Das Problem ist nun, daß die ComboBox immer den Wert -1 bekommt, da ja bei einer Änderung an dem Editfeld die ComboBox den Wert -1 bekommen soll. Und jedes Mal wenn bei der Auswahl der ComboBox ein Wert in das Editfeld geschrieben wird, ändert sich auch der Editwert und ändert den ItemIndex der ComboBox.

Eigentlich ist das Problem alltäglich, aber ich hab einfach keine Idee.

1. das Problem hier ist vereinfacht dargestellt, also bitte keine Tipps wie ich das eifache Beispiel anders machen kann
2. ich nutze den OnChange von TEdit und möchte es auch so lassen. Wenn ich etwas in das Feld eintippe, dann beeinflusst es auch andere Werte. Das soll man direkt sehen und nicht erst bei OnExit
3. irgendwie kriege ich das auch gebastelt, aber ich möchte es nicht irgenwie basteln, sonder es richtig machen.

Hier ein einfaches Beispiel das das Problem zeigt:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  with ComboBox1, Items do
  begin
    Add('1');
    Add('2');
    Add('3');
    Add('4');
    Add('5');
    Add('6');

    ItemIndex := 0;

    ComboBox1Click(nil);
  end;
end;

procedure TForm1.ComboBox1Click(Sender: TObject);
begin
  with ComboBox1, Items do
    if ItemIndex > -1 then Edit1.Text := Items[ItemIndex];
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  with ComboBox1, Items do
    if ItemIndex > -1 then ItemIndex := -1;
end;
  Mit Zitat antworten Zitat