Hi Leute,
ich muss ein Programm mehrsprachig machen. Hierbei arbeite ich mit einer Ressourcen-Stringlist und springe die ID's mittels sprachenspezifischen Offsets an. Auswählen der Sprache erfolgt mittels Menüeintrag im Grundbild. Das funktioniert soweit ganz gut, jedoch nur beim Mainform der Applikation. Wenn ich beispielsweise die AboutBox öffne, wird diese nicht in der ausgewählten Sprache angezeigt. Der relevante Ausschnitt aus der
Unit "Sprache" sieht folgendermaßen aus:
Delphi-Quellcode:
begin
with application do for i := 0 to ComponentCount-1 do begin
for j := 0 to Components[i].ComponentCount-1 do begin
if Components[i].Components[j].tag <> 0 then begin
c := Components[i].Components[j];
if (c is TLabel) then (c as TLabel).caption := GetResString((c as TLabel).tag);
if (c is TButton) then (c as TButton).caption := GetResString((c as TButton).tag);
if (c is TCheckbox) then (c as TCheckbox).caption := GetResString((c as TCheckbox).tag);
if (c is TMenuitem) then (c as TMenuitem).caption := GetResString((c as TMenuitem).tag);
{ Hier stehen die weiteren Typen, die von der Sprachumwandlung betroffen sind ... z.B. Combobox }
end;
end;
end;
end;
Ich vermute, dass sich 'application' nur auf die Mainform bezieht?! Oder muss ich jedes Form beim Aufruf initialisieren? Wer kann helfen?
MfG
Deerfield