Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Komponente über Variable ansprechen

  Alt 16. Nov 2017, 13:23
Für sowas habe ich mir mal folgende Routine geschrieben:
Delphi-Quellcode:
class procedure TUtilities.ForAllComponentsOf<T>(Container: TComponent; DoProc: TProc<T>);
var
  cmp: TComponent;
begin
  for cmp in Container do
    if cmp is T then
      DoProc(T(cmp));
end;

Das würde man in deinem Fall (angenommen, es gibt keine anderen Shapes) innerhalb des Forms dann in etwa so benutzen:
Delphi-Quellcode:
  TUtilities.ForAllComponentsOf<TShape>(Self,
    procedure(Arg: TShape)
    begin
      Arg.Visible := False;
    end);
Welche Units müssen denn in die uses-Klausel? Wäre für den Themenersteller (und andere) vielleicht hilfreich.
Versuchs doch mal mit System.SysUtils. Da ist TProc<T> definiert.
  Mit Zitat antworten Zitat