Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#1

Prüfen und Casten auf einen Rutsch

  Alt 18. Jul 2012, 22:05
Delphi-Version: 5
Bin gerade aus Zufall auf folgende Idee gekommen, dass man die Prüfung mit is und eine anschliesende Cast-Operation zusammenfassen könnte:
Delphi-Quellcode:
function IsKindOf(obj:TObject; AClass:TClass; var x):Boolean;
begin
  Result := obj is AClass;
  if Result then
    TObject(x) := obj
  else
    TObject(x) := nil;
end;

// Mit Hilfsfunktion
procedure TForm1.Button1Click(Sender: TObject);
var
  b : TButton;
begin
  if IsKindOf(Sender, TButton, b) then
    b.Caption := 'ich bin ein Button';
end;

// Ohne Hilfsfunktion
procedure TForm1.Button1Click(Sender: TObject);
var
  b : TButton;
begin
  if Sender is TButton then
  begin
    b := TButton(Sender);
    b.Caption := 'ich bin ein Button';
  end;
end;
Falls das jemand gut findet, darf er die Funktion behalten.
  Mit Zitat antworten Zitat