![]() |
Re: Zugriff auf Label aus "externer" Unit (neu gef
Label1.Handle dürfte aber schwierig werden :zwinker:
|
Re: Zugriff auf Label aus "externer" Unit (neu gef
Hallo,
stimmt ;) Heiko |
Re: Zugriff auf Label aus "externer" Unit (neu gef
Nochmal kurz die prakmatischen Möglichkeiten aus meiner Sicht.
1. Wie die Kollegen vorher schon beschrieben haben, die frmMain in die Uses Anweisung von unLGU hinzufügen. oder 2. (So mache ich es meistens) verwende Funktionen bzw. Prozeduren in der unLGU die Dir den gewünschten Wert gleich zurückgeben. Du könnsten in der frmMain das Label dann zb über
Code:
den neuen Wert zuweisen und die eigentliche Funktion steht in Deiner externen Unit. So muss die unLGU nur in die uses Anweisung von frmMain.
label1.caption := getNewLabelCaption(IrgendeinUebergabeparameter);
Dadurch bleiben Deine Funktionen auch gleich flexibler und Du kannst Sie ggf. auch für andere Zwecke wieder brauchen. Ich hoffe das hilft Dir weiter. |
Re: Zugriff auf Label aus "externer" Unit (neu gef
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:
Es gibt mehrere Möglichkeiten, wie man diese Prozedure ganz allgemein aufrufen kann, ohne jedes einzelne Formular
procedure TForm1.SetLanguage;
begin SetLngCaption(lblName01, 1004); SetLngCaption(lblDescr01, 1008); ... end; 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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz