Ver Mensaje Individual
  #6  
Antiguo 26-03-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 16
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Muy bueno, me recuerda mucho a esta pequeña joya creada por David Heffernan que utilizo para Vcl, y me permite escribir este tipo de codigo, utilizando genericos, predicados y acciones:

Código Delphi [-]

procedure TForm1.btnCountAllClick(Sender: TObject);
begin
  InfoMsgFmt('%d', [TControls.ChildCount< TWinControl >(Self)]);
end;

procedure TForm1.btnCountButtonsClick(Sender: TObject);
begin
  InfoMsgFmt('%d', [TControls.ChildCount< TWinControl >(Self, function(AControl: TWinControl): Boolean
  begin
    Result := AControl is TButton
  end)]);
end;

procedure TForm1.btnWalkControlsClick(Sender: TObject);
begin
  TControls.WalkControls< TWinControl >(Self, procedure(AControl: TWinControl)
  begin
    InfoMsg(AControl.ClassName);
  end);
end;

Saludos

Última edición por AgustinOrtu fecha: 26-03-2016 a las 21:45:17. Razón: Los genericos no salen correctamente :(
Responder Con Cita