ich habe folgenden Quellkode, wo ich aus TfrmMain den Procedure frmMain.Zeige(frmMain); aufrufe => kein Problem gibt er mir den 'Hallo' String aus im TfrmMain.
Frage: wenn ich aus Tform1 frmMain.Zeige(form1); aufrufe => zeigt er den 'Hallo' String nicht aus im form1. Warum??
Delphi-Quellcode:
Procedure TfrmMain.Zeige(Sender: TObject);
begin
with Sender do
begin
Canvas.TextOut(X, Y, 'Hallo');
end
end
Tja, da haben wir das böse WITH, denn eigentlich sieht es so aus, da TObjekt kein Canvas besitzt.
Delphi-Quellcode:
Procedure TfrmMain.Zeige(Sender: TObject);
begin
with Sender do
begin
Self.Canvas.TextOut(X, Y, 'Hallo');
end
end
Es wird also erfogreich gezeichnet, aber eben immer nur auf der Form, worin diese Zeichenmethode rumliegt.