Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Item auswählen bei TComboBox


fishhed - Mo 23.10.06 16:40
Titel: Item auswählen bei TComboBox
Hallo,

es ist bestimmt total einfach aber ich kriege es nicht hin:

Ich habe eine Combobox mit 5 Einträgen.
Bei bestimmten Aktionen sollen bestimmte Einträge vorselektiert werden.
Wie mache ich das?

So habe ich es versucht:

Die Combobox Land steht auf: 'Alle'
Ich möchte sie auf Deutschland umstellen.

LandCombobox.Text:='Deutschland'

Es funktioniert aber nicht!


Blackheart666 - Mo 23.10.06 16:58


Delphi-Quelltext
1:
ComboBox1.Text:=ComboBox1.Items[3]; // Vierter Eintrag Deutschland                    


Jakob Schöttl - Mo 23.10.06 17:36

Ich würds nicht so machen sondern mit Combobox1.Itemindex := 0 (0 ist der index; der index beginnt bei 0 und geht bis count -1). wenn nähmlich ein anderes style der combobox eingestellt ist, dann gehen eure beide vorschläge glaub ich nicht, weil man da text nichts zuweisen kann.


Christian S. - Mo 23.10.06 17:59

Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Christian


raiguen - Mo 23.10.06 22:24

Moin :-)

Beispielsweise sehen die Items in der ComboBox so aus:

Quelltext
1:
2:
3:
4:
5:
6:
7:
Alle        // Index 0    
Niederlande   // Index 1
Polen
Schweiz
Belgien
Deutschland
Luxemburg     // Index 6


Wenn Du beispielsweise irgendwo was mit Deutschland hast, dann kannst du die ComboBox so auf den Eintrag einstellen; vorausgesetzt, der Index vom Eintrag 'Deutschland ist bekannt:

Delphi-Quelltext
1:
2:
...
if blabla = 'Deutschland' then ComboBox1.ItemIndex := 5;   //Deutschland hat den Index 5

Falls der Index des EIntrages nicht bekannt ist, dann muss halt ne Schleife her, um den Eintrag zu suchen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
...
for i := 0 to ComboBox1.Items.Count -1 do
  if ComboBox1.Items[i] = 'Deutschland' then 
    begin
      ComboBox1.ItemIndex := i;   // Combobox auf den gefundenen Eintrag stellen
      irgendeinString := ComboBox1.Text;      // weist dem String den Inhalt vom gefundenen Eintrag zu (Variante 1)
      nocheinString   := ComboBox1.Items[i];  // Inhalt vom gefundenen Eintrag zuweisen (Variante 2)
      break;                                  // bei gefundenem Eintrag Schleife verlassen
end;




Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt


Andreas Schilling - Di 24.10.06 07:21

es geht auch einfacher

Delphi-Quelltext
1:
Landcombobox.itemindex := Landcombobox.items.indexof('Deutschland');                    


Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt


raiguen - Di 24.10.06 09:25

user profile iconAndreas Schilling hat folgendes geschrieben:
es geht auch einfacher
Landcombobox.itemindex := Landcombobox.items.indexof('Deutschland');

Ähm... stimmt, bei der Combobox lässt sich die Methode IndexOf einsetzen..


fishhed - Di 24.10.06 10:04

Sauber, so geht es. Allerbesten Dank!