Weil ich ja so'n bisschen bequem bin habe ich mir für solche Zwecke einen Helper geschrieben:
Delphi-Quellcode:
type
TComponentHelper = class helper for TComponent
public
function FindComponentOf<T: class>(const AName: string): T;
procedure ForAllComponentsOf<T: class>(DoProc: TProc<T>);
end;
...
function TComponentHelper.FindComponentOf<T>(const AName: string): T;
begin
result := FindComponent(AName) as T;
end;
procedure TComponentHelper.ForAllComponentsOf<T>(DoProc: TProc<T>);
var
cmp: TComponent;
begin
for cmp in Self do
if cmp is T then
DoProc(T(cmp));
end;
Das Beispiel mit dem TImage würde damit dann in etwa so aussehen:
Delphi-Quellcode:
ForAllComponentsOf<TImage>(
procedure(Arg: TImage)
begin
Panel3.caption := Arg.Left.ToString;
end);