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.