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)