AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit ComboBox.Text im OnChange Event

Ein Thema von Angel4585 · begonnen am 13. Jan 2006 · letzter Beitrag vom 17. Jan 2006
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

Problem mit ComboBox.Text im OnChange Event

  Alt 13. Jan 2006, 08:51
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

Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit ComboBox.Text im OnChange Event

  Alt 16. Jan 2006, 09:06
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.
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: Problem mit ComboBox.Text im OnChange Event

  Alt 16. Jan 2006, 10:44
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;
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Problem mit ComboBox.Text im OnChange Event

  Alt 17. Jan 2006, 05:21
Da wären aber die Items ABCD weg. Und das wird er nicht wollen.
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Problem mit ComboBox.Text im OnChange Event

  Alt 17. Jan 2006, 06:48
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
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.594 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Problem mit ComboBox.Text im OnChange Event

  Alt 17. Jan 2006, 08:28
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.
Sven Harazim
--
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Problem mit ComboBox.Text im OnChange Event

  Alt 17. Jan 2006, 11:06
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:36 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