Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Gibts sowas wie findproperty?

  Alt 7. Jul 2013, 10:11
Darf ich dazu noch ein paar Takte Generics einwerfen?

Delphi-Quellcode:
uses
  System.Sysutils; // wegen TProc<T>
type
  TUtilities = record
    class procedure ForIn<T: class>(const Targets: array of T; DoProc: TProc<T>); static;
  end;

class procedure TUtilities.ForIn<T>(const Targets: array of T; DoProc: TProc<T>);
var
  instance: T;
begin
  for instance in Targets do
    DoProc(instance);
end;
Damit ließe sich dein Code dann so schreiben (zwar etwas länger, aber deutlich flexibler und typsicher):

Delphi-Quellcode:
  TUtilities.ForIn<TCheckBox>([CheckBox2, CheckBox4],
    procedure (ACheckBox: TCheckBox)
    begin
      ACheckBox.Checked := True;
    end);
  TUtilities.ForIn<TCheckBox>([CheckBox1, CheckBox3],
    procedure (ACheckBox: TCheckBox)
    begin
      ACheckBox.Checked := false;
    end);
  TUtilities.ForIn<TEdit>([Edit1, Edit2],
    procedure (AEdit: TEdit)
    begin
      AEdit.Text := '';
    end);
  TUtilities.ForIn<TEdit>([Edit3],
    procedure (AEdit: TEdit)
    begin
      AEdit.Text := 'Hallo Welt';
    end);
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat