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 ComboBox Problem mit Änderung der Items und .text (https://www.delphipraxis.net/150065-combobox-problem-mit-aenderung-der-items-und-text.html)

albi5678 6. Apr 2010 19:46


ComboBox Problem mit Änderung der Items und .text
 
Hallo zusammen,

ich habe folgendes Problem:

Ich habe eine Combobox mit Style cdDropDownList. In dieser ComboBox habe ich nun die Sprachen des Programms hinterlegt. Z.B. Deutsch und Englisch. Wähle ich nun eine Sprache aus, so ändert sich der Inhalt der ComboBox und schreibt dann z.B. German und English in die Box rein. Das funktioniert auch alles soweit sauber, ich möchte nur, dass die Property .text immer mit der aktuellen Sprache gefüllt ist, was aber nicht klappt.

Ich ändere die ComboBox nachdem das OnSelect Event ausgelöst wurde sinngemäß folgendermaßen:

Delphi-Quellcode:
     cbLanguage.Items[0]:=('English');
     cbLanguage.Items[1]:=('German');
     cbLanguage.Text:=cbLanguage.Items[0];
Das sollte doch eigentlich funktionieren oder?

MfG
Michael

Christian Seehase 6. Apr 2010 20:13

Re: ComboBox Problem mit Änderung der Items und .text
 
Moin Michael,

dazu musst Du die Eigenschaft ItemIndex setzen.

albi5678 6. Apr 2010 21:09

Re: ComboBox Problem mit Änderung der Items und .text
 
Super, hat geklappt.

Vielen Dank :)

s.h.a.r.k 6. Apr 2010 22:02

Re: ComboBox Problem mit Änderung der Items und .text
 
Zitat:

Zitat von albi5678
Delphi-Quellcode:
cbLanguage.Items[0]:=('English'); // <- Die Klammer '(' und ')' sind überflüssig.
cbLanguage.Items[1]:=('German'); // <- hier auch!
cbLanguage.Text:=cbLanguage.Items[0];

Zudem setzt der Zugriff auf die Elemente [0] und [1] voraus, dass schon mindestens zwei Elemente in der ComboBox enthalten sind. Wenn gar keines oder nur eines enthalten ist, so erhälst du einen Zugriffsfehler. Sicherer wäre folgender Code
Delphi-Quellcode:
cbLanguage.Items.Clear();        // Alle Elemente entfernen
cbLanguage.Items.Add('English'); // 'English' hinzufügen
cbLanguage.Items.Add('German');  // 'German' hinzufügen
cbLanguage.ItemIndex := 0;       // Ersten Eintrag auswählen -> 'English'

DeddyH 7. Apr 2010 08:11

Re: ComboBox Problem mit Änderung der Items und .text
 
Und sollten es mal einige Einträge mehr werden, kann man das Ganze mit Combobox.Items.BeginUpdate und Combobox.Items.EndUpdate ggf. enorm beschleunigen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:21 Uhr.

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