Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.445 Beiträge
 
Delphi 12 Athens
 
#8

AW: Komponenten durchgehen und darauf zugreifen?

  Alt 8. Apr 2022, 12:26
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);
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat