Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#14

Re: Zugriff auf Label aus "externer" Unit (neu gef

  Alt 22. Jul 2008, 00:44
Dein Ansatz ist schon falsch.
Ein Formular ist für sich selbst verantwortlich; d.h. es sorgt selbst dafür, dass es ist der richtigen Sprache angezeigt wird.
So wie du dir das vorstellst, versteust die die Verantwortlichkeiten über mehrere Units.
Das führt zu einem Programm, in dem sich kaum mehr etwas ändern lässt ohne dass an anderer Stelle etwas passiert oder
eine Änderung notwendig wird.
Stell dir vor, du änderst den Namen eines Labels von "Label18" nach "LblBruttopreis".
Was sofort eine Änderung in der Unit untLGU nach sich zieht.

Mögliche Lösung:
Jedes Formular hat eine Procedure zur Sprachumstellung:
Delphi-Quellcode:
procedure TForm1.SetLanguage;
begin
  SetLngCaption(lblName01, 1004);
  SetLngCaption(lblDescr01, 1008);
  ...
end;
Es gibt mehrere Möglichkeiten, wie man diese Prozedure ganz allgemein aufrufen kann, ohne jedes einzelne Formular
mit Uses einzubinden.
Egal, wie viele Formulare deine Anwendung hat, solange jedes Formular die Procedure SetLanguage hat
ist es möglich die Sprache zur Laufzeit umzuschalten.
Die aktuelle Sprache (LngNr) ist in irgendeinem globalen Objekt hinterlegt;
man braucht die Variable nicht überall mitzuschleifen.
  Mit Zitat antworten Zitat