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.