Autor |
Beitrag |
der organist
      
Beiträge: 467
Erhaltene Danke: 17
WIN 7
NQC, Basic, Delphi 2010
|
Verfasst: Fr 17.10.08 17:56
hi Leutz,
ich möchte in meinem Programm die Möglichkeit haben, die Sprache zu wechseln. Probleme habe ich bei den Comboboxen:
Delphi-Quelltext 1: 2:
| if Combobox1.Text = 'Schwar' then Combobox1.Text := 'Black'; |
funzt nur leider nicht....
{und das Forum nützt da gerade auch wenig...ca 25 min Zeitaufwand}
Ich hab auch schon Dinge mit Items.[Combobox.ItemIndex] probiert, aber alles in allem hat das nichts geholfen.
_________________ »Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
|
|
Fabian E.
      
Beiträge: 554
Windows 7 Ultimate
Visual Studio 2008 Pro, Visual Studion 2010 Ultimate
|
Verfasst: Fr 17.10.08 18:24
Doch genau so sollte es klappen... Bei mir jedenfalls...
Liegt es vielleicht an deinem "Schwar"? Und nicht "Schwarz"?
|
|
der organist 
      
Beiträge: 467
Erhaltene Danke: 17
WIN 7
NQC, Basic, Delphi 2010
|
Verfasst: Fr 17.10.08 19:14
nö, ich denke nicht, denn ich habe den Text hier nicht reinkopiert, SChreibfehler
_________________ »Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 17.10.08 19:19
Bei einer Combobox macht es IMHO nicht viel Sinn, den Text zu ändern, man muss dann schon andere Items laden und ggf. den ItemIndex wiederherstellen.
|
|
LexXis
      
Beiträge: 170
Erhaltene Danke: 3
|
Verfasst: Fr 17.10.08 19:19
Für den Fall, dass du den Text des ausgewählten Eintrags ändern willst:
Was du brauchst sind ComboBox.ItemIndex und ComboBox.Items.Strings
Bastel damit mal ein wenig rum
mfg
//EDIT: Ich geb meinem Vorredner allerdings zu 100% recht. Lieber die ComboBox leeren und neu füllen.
//EDIT 2:
Delphi-Quelltext 1: 2:
| ComboBox.Items.Strings[ComboBox1.ItemIndex] := 'Black'; ComboBox.Text := 'Black'; |
Funktioniert doch einwandfrei o_O
|
|
der organist 
      
Beiträge: 467
Erhaltene Danke: 17
WIN 7
NQC, Basic, Delphi 2010
|
Verfasst: Fr 17.10.08 19:33
Delphi-Quelltext 1: 2: 3: 4: 5:
| if Combobox1.Items[Combobox.ItemIndex] = 'Schwarz' then Combobox1.Text := 'Black'; |
_________________ »Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
|
|
LexXis
      
Beiträge: 170
Erhaltene Danke: 3
|
Verfasst: Fr 17.10.08 19:39
|
|
der organist 
      
Beiträge: 467
Erhaltene Danke: 17
WIN 7
NQC, Basic, Delphi 2010
|
Verfasst: Fr 17.10.08 19:42
ok, ich habe sie neu befüllt, aber wie kriege ich die alte Auswahl nur in der anderen Sprache wieder?
EDIT: Ich glaub die Frage war völlig überflüssig, ich hab ne Lösung gefunden, sollte die nich funzen, melde ich mich wieder (und das läuft nicht über den Text wie vorher)
_________________ »Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
|
|
LexXis
      
Beiträge: 170
Erhaltene Danke: 3
|
Verfasst: Fr 17.10.08 19:45
Es lebe der ItemIndex und eine Variable zum "zwischenspeichern"..
Gutes Weiterkommen
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 17.10.08 19:53
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| type TLanguage = (lDeutsch,lEnglish);
TForm1 = class(TForm) ... private iLanguage: TLanguage; procedure ChangeLanguage; ... end;
...
implementation
{$R *.dfm}
const sDeutsch: array[0..3] of string = ('Schwarz','Weiß','Gelb','Blau'); sEnglish: array[0..3] of string = ('Black','White','Yellow','Blue');
procedure TForm1.Button1Click(Sender: TObject); begin ChangeLanguage; end;
procedure TForm1.ChangeLanguage; var OldIndex, i: Integer; begin OldIndex := ComboBox1.ItemIndex; ComboBox1.Items.BeginUpdate; try ComboBox1.Items.Clear; case iLanguage of lDeutsch: begin for i := Low(sEnglish) to High(sEnglish) do ComboBox1.Items.Add(sEnglish[i]); iLanguage := lEnglish; end; lEnglish: begin for i := Low(sDeutsch) to High(sDeutsch) do ComboBox1.Items.Add(sDeutsch[i]); iLanguage := lDeutsch; end; end; finally ComboBox1.Items.EndUpdate; ComboBox1.ItemIndex := OldIndex; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin iLanguage := lEnglish; ChangeLanguage; end; |
Das ist nur eine schnell dahingetippte Möglichkeit, man könnte auch Ressourcestrings verwenden etc.
|
|
der organist 
      
Beiträge: 467
Erhaltene Danke: 17
WIN 7
NQC, Basic, Delphi 2010
|
Verfasst: Fr 17.10.08 19:54
Danke, hat funktioniert.
_________________ »Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
|
|