Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

AW: Form Namen Variable verwenden

  Alt 21. Aug 2012, 16:34
Delphi-Quellcode:
procedure prLoadModuleLanguage(sModule : String);

var
i : Integer;


begin

  For i := 0 To Application.FindComponent(sModule).ComponentCount -1 Do
  Begin

    //TAdvPage
    If (Application.FindComponent(sModule).Components[i] is TAdvPage) Then
    Begin
      (Application.FindComponent(sModule).Components[i] as TAdvPage).Caption := fnGetComponentCountryText('Component', sModule, 'TAdvPage', (Application.FindComponent(sModule).Components[i] as TAdvPage).Name);
    End;

    //TAdvToolBar
    ...

    //TAdvGlowButton
    ...
  End;

end;
So macht man das ja auch nicht, sondern man schaut sich an, ob das Caption nicht aus einem Vorfahren kommt, und dann arbeitet man mit dem Vorfahren.

Caption kommt normalerweise von TControl.Caption

Also im ganzen Satz:
Delphi-Quellcode:
procedure prLoadModuleLanguage(aComponent : TComponent);
var
  idx : Integer;
  lComponent : TComponent;
  lControl : TControl;
begin
  for idx := 0 to Pred( aComponent.ComponentCount ) do
  begin

    lComponent := aComponent.Components[ idx ];

    if lComponent is TControl then
    begin

      lControl := lComponent as TControl;

      lControl.Caption := fnGetComponentCountryText('Component', aComponent.ClassName, lComponent.ClassName, lComponent.Name);

    end;

  end;
end;
Irgendwelche Spezialfälle muss man natürlich gesondert behandeln, aber auch da macht es immer Sinn, den passenden Vorgänger zu suchen, sonst tippt man sich einen Wolf.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat