Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem mit ComboBox.Text im OnChange Event (https://www.delphipraxis.net/60857-problem-mit-combobox-text-im-onchange-event.html)

Angel4585 13. Jan 2006 08:51


Problem mit ComboBox.Text im OnChange Event
 
Hallo zusammen,

Ich Habe in einer ComboBox die Items : A,B,C,D,E und möchte wenn ich eins davon ausgewählt habe jeweils 1,2,3,4,5(Die Zahlen stehen nur symbolisch für irgendwelche Wörter) anzeigen lassen,

d.h. ich schreibe im OnChange

Delphi-Quellcode:
case ComboBox.Itemindex of
 0: ComboBox.Text:='1';
 1: ComboBox.Text:='2';
 2: ComboBox.Text:='3';
 3: ComboBox.Text:='4';
 4: ComboBox.Text:='5';
 end;
Allerdings wird danach auf einmal der Text wieder zurück auf A,B,C,D bzw. E gesetzt.

Habe jetzt einen Timer genommen der den Wert nach 20 ms in die ComboBox schreibt, find es allerdings etwas...naja nicht ganz sooo schön. Weis jemand wie ich das in dem OnChange Ereignis reinschreiben kann?

Danke schonmal

:angel:

sh17 16. Jan 2006 09:06

Re: Problem mit ComboBox.Text im OnChange Event
 
Das wird so nicht gehen.

Als Alternative wäre da noch, das Du den Inhalt der Comboxbox selbst zeichnest. Je nach ItemIndex einen anderen Text anzeigen.

Gollum 16. Jan 2006 10:44

Re: Problem mit ComboBox.Text im OnChange Event
 
Hallo,

Du darfst in diesem Fall nicht ComboBox.Text nehmen, sondern ComboBox.Items.
Worin der Unterschied besteht, siehe
Delphi-Quellcode:
  ComboBox.Items[ComboBox.ItemIndex]:=IntToStr(ComboBox.ItemIndex+1);
  // ComboBox.Update;

sh17 17. Jan 2006 05:21

Re: Problem mit ComboBox.Text im OnChange Event
 
Da wären aber die Items ABCD weg. Und das wird er nicht wollen.

Kroko1999 17. Jan 2006 06:48

Re: Problem mit ComboBox.Text im OnChange Event
 
Warum soll ich mir in einer ComboBox A-E auswählen und dann sollen die Worte '1' - '5' erscheinen?
Dies erscheint mir völlig unlogisch, da kann ich doch gleich die Worte wählen oder :?:

sh17 17. Jan 2006 08:28

Re: Problem mit ComboBox.Text im OnChange Event
 
Zitat:

Zitat von Kroko1999
Warum soll ich mir in einer ComboBox A-E auswählen und dann sollen die Worte '1' - '5' erscheinen?
Dies erscheint mir völlig unlogisch, da kann ich doch gleich die Worte wählen oder :?:

Beispiel

Items:
grün
blau
rot
Anzeige gefärbt entspr. ItemIndex


oder
Items:
stk (Stückzahl)
kg (Kilogramm)
l (Liter)
Anzeige
stk
kg
l

usw.

marabu 17. Jan 2006 11:06

Re: Problem mit ComboBox.Text im OnChange Event
 
Wenn ich alles richtig verstehe, dann geht es um eine Lookup-Funktion analog der Komponente TDBLookupCombobox. Ich würde eine Komponente TLookupComboBox von der Standard-ComboBox ableiten, aber auf die Schnelle funktioniert dieser Ansatz:

Delphi-Quellcode:
procedure TDemoForm.ComboBoxDropDown(Sender: TObject);
var
  i: Integer;
begin
  with Sender as TComboBox do
  begin
    i := ItemIndex;
    Items.CommaText := 'Kilogramm,Paket,Stück';
    ItemIndex := i;
  end;
end;

procedure TDemoForm.ComboBoxCloseUp(Sender: TObject);
var
  i: Integer;
begin
  with Sender as TComboBox do
  begin
    i := ItemIndex;
    Items.CommaText := 'Kg,Pk,St';
    ItemIndex := i;
  end;
end;
Eine private message an die Form aus dem Ereignis OnClick() der ComboBox wäre ein weiterer Ansatz. Unabhängig vom Lösungsansatz beschleicht mich aber ein Gefühl von Unbehagen.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz