Moin Eleonora,
ich meine das so:
Delphi-Quellcode:
// Dieses für jedes Formular
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
//...
public
//...
procedure InitEnglish;
procedure InitGerman;
end;
//...
implementation
procedure TForm1.InitEnglish;
begin
// Die englischen Texte eintragen
end;
procedure TForm1.InitGerman;
begin
// Die deutschen Texte eintragen
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// Das INI Drumherum gehört noch mit dazu
// hab' ich hier mal weggelassen
if language = 'german' then begin
InitGerman;
end else begin
InitEnglish;
end;
end;
// Im Menüpunkt Englisch dann (Deutsch analog)
procedure language_englishClick(Sender: TObject);
begin
Form1.InitEnglisch;
Form2.InitEnglisch;
//...
end;
So ist sichergestellt, dass nur dann Teile eines Formulares angefasst werden, wenn dieses vollständig erzeugt wurde.
Um nicht dauernd die Ini neu öffnen zu müssen, wäre es auch nicht verkehrt die einzustellende Sprache einmal im OnCreate des Hauptformulares in ein private Feld auszulesen, und dann mit einer neuen Eigenschaft des Hauptformulares allen anderen zur Verfügung zu stellen.