Delphi-Quellcode:
Procedure TfrmMain.Zeige(Sender: TObject);
begin
with Sender do
begin
Canvas.TextOut(X, Y, 'Hallo');
end
end
Das wird nicht funktionieren, weil Sender is vom Typ TObject und das hat keinen Canvas. Wenn du es nur für Forms machen willst, kannst den Typen überprüfen und mit einem Typecast arbeiten:
Delphi-Quellcode:
Procedure TfrmMain.Zeige(Sender: TObject);
begin
if (Sender is TForm) then
(Sender as TForm).Canvas.TextOut(X, Y, 'Hallo');
end
Wenn allerdings etwas castest, was nicht geht (z.B. zwei Klassen, die nicht voneinander abgeleitet sind) gibt es eine
Exception (daher vorher der Test mit dem "is"-Operator)