Beim Versucht, ein Standardformular für Druckvorschau zu entwerfen, stehe ich vor folgendem Problem: Wie weise ich dem auf dem Formular enthaltenen WinControl zur Laufzeit ein entsprechendes OnPaint-Ereignis zu.
Wenn ich das innerhalb des Formulars machen möchte, gibt's kein Problem, zum Beispiel:
procedure Preview (Sender: TObject);
procedure Preview (Sender: TObject);
begin
ShowPreview (WinControl.Canvas)
end;
wenn ich nun einen Button einbaue, und folgendes mache:
self.OnPaint := Preview;
dann gibt's keinerlei Probleme.
Wenn ich aber von einer anderen Unit aus entsprechende Prozeduren deklariere:
procedure Form2Preview (Sender: TObject);
begin
ShowPreview (Form1.WinControl.Canvas)
end;
dann beschwert sich Delphi schon bei folgendem Aufruf:
Form1.OnPaint := Form2.Preview;
mit der Bemerkung inkompatibler Typen.
Gibt's eine Möglichkeit, das irgendwie zu schaffen - also eine Prozedur dynamisch während der Laufzeit an das OnPaint zu schicken (schliesslich geht's innerhalb des Formulars ja auch). Ich möchte nämlich das Formular für verschiedene Druckvorschauen nehmen können.
Danke für jeden sachdienlichen Hinweis.
Wenn ich das innerhalb des Formulars machen möchte, gibt's kein Problem, zum Beispiel:
procedure Preview (Sender: TObject);
procedure Preview (Sender: TObject);
begin
ShowPreview (WinControl.Canvas)
end;
wenn ich nun einen Button einbaue, und folgendes mache:
self.OnPaint := Preview;
dann gibt's keinerlei Probleme.
Wenn ich aber von einer anderen Unit aus entsprechende Prozeduren deklariere:
procedure Form2Preview (Sender: TObject);
begin
ShowPreview (Form1.WinControl.Canvas)
end;
dann beschwert sich Delphi schon bei folgendem Aufruf:
Form1.OnPaint := Form2.Preview;
mit der Bemerkung inkompatibler Typen.
Gibt's eine Möglichkeit, das irgendwie zu schaffen - also eine Prozedur dynamisch während der Laufzeit an das OnPaint zu schicken (schliesslich geht's innerhalb des Formulars ja auch). Ich möchte nämlich das Formular für verschiedene Druckvorschauen nehmen können.
Danke für jeden sachdienlichen Hinweis.
Comment