Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Combobox leer nach TranslateComponent (https://www.delphipraxis.net/143454-combobox-leer-nach-translatecomponent.html)

Hedge 16. Nov 2009 15:41


Combobox leer nach TranslateComponent
 
Ich verwende dxgettext und meine Combobox hat den Style csOwnerDrawFixed.
Diese dient zum Auswählen der Sprache.
Darin lass ich lustige Flaggen zeichnen. OnDrawItem sieht so aus:

Delphi-Quellcode:
procedure TMainForm.LanguageComboBoxDrawItem(Control: TWinControl;
  Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
  LanguageComboBox.canvas.fillrect(rect);
  LanguageImageList.Draw(LanguageComboBox.Canvas,rect.left,rect.top,Index);
  LanguageComboBox.canvas.textout(rect.left+LanguageImageList.width+2,rect.top,
                          LanguageComboBox.items[index]);
end;
und OnChange so:

Delphi-Quellcode:
procedure TMainForm.LanguageComboBoxChange(Sender: TObject);
begin
  if (LanguageComboBox.Text='English') or (LanguageComboBox.Text='Englisch') then
  begin
    UseLanguage ('en');
  end
  else if (LanguageComboBox.Text='German') or (LanguageComboBox.Text='Deutsch') then
    UseLanguage ('de');
  ReTranslateComponent(self);
  LanguageComboBox.Refresh;
end;
Mein Problem ist, dass nach RetranslateComponent die ComboBox leer ist.
Habe schon Refresh, Repaint und Update probiert, aber es half nichts.

Hedge 16. Nov 2009 15:52

Re: Combobox leer nach TranslateComponent
 
Habe wieder mal zu schnell geschossen.

In der alten Doku von GNU gettext steht dazu Folgendes:

Zitat:

Next, I started to work through all my menus, popups and forms one by one to see if everything was translated and worked as expected. I found that I had some comboboxes that lost their stored ItemIndex when they were translated (it was reset to -1) so I added some code to set these programmatically. Also, I found some items that hadn't been translated in the po and I fixed these with poEdit.
Also speichert man sich vorher den ItemIndex zwischen und setzt ihn dann nach dem Retranslate erneut.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 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