Combobox nach Clear() und Items->Add(...) kein Text mehr ???
-
Hallo,
ich habe folgendes Problem. Ich habe eine ComboBox, die ich für eine Sprachwahl verwenden will. Wenn ich jetzt das Interface auf Deutsch habe, dann stehen in der Box die Möglichkeiten (ComboBox1->Items) in Deutsch (also z.B. "Deutsch", "Englisch"). Die habe ich mit ComboBox1->Items->Add(...) hinzugefügt.
Wenn jetzt jemand "Englisch" wählt, dann mache ich ein ComboBox1->Clear() und trage dann die Sprachmöglichkeiten wieder mit ComboBox1->Items->Add(...) auf Englisch ein ("English","German").
Die Eigenschaft ComboBox1->Text setze ich immer auf den Text, in dem das GUI gerade dargestellt wird. Der ganze Spass passiert beim OnChange-Event der ComboBox.
Das Problem ist, dass der Text in der ComboBox nicht angezeigt wird (ComboBox1->Text). D.h. die ComboBox ist leer, wenn sie nicht aufgeklappt ist. Die Items sind da, wenn man runterklappt.
Hier mal ein Beispiel-Code:
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- AnsiString a1="Englisch", a2="Deutsch", b1="English", b2="German"; void __fastcall TForm1::ComboBox1Change(TObject *Sender) { if (ComboBox1->Text==a2 || ComboBox1->Text==b2) { ComboBox1->Clear(); ComboBox1->Text = a2; ComboBox1->Items->Add(a2); ComboBox1->Items->Add(a1); } else { ComboBox1->Clear(); ComboBox1->Text = b1; ComboBox1->Items->Add(b1); ComboBox1->Items->Add(b2); } } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { ComboBox1->Items->Add(a2); ComboBox1->Items->Add(a1); ComboBox1->Text = a2; } //---------------------------------------------------------------------------
Vielen Dank im Voraus!
MfGr,
mid
-
Hi,
hast Du ComboBox->ItemIndex = 0; gesetzt? Und warum fütterst Du die ComboBox zur Laufzeit??
Ciao
Loriat
-
Loriat schrieb:
Hi,
hast Du ComboBox->ItemIndex = 0; gesetzt? Und warum fütterst Du die ComboBox zur Laufzeit??
Ciao
LoriatItemIndex ---> das ist genau, was ich gebraucht habe!!!!
Ich danke Dir!
Das mit dem "füttern" war jetzt nur, dass das Problem transparenter ist.
Viele Grüße,
mid