Announcement

Collapse
No announcement yet.

Zuweisung an OnPaint von anderem Formular

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zuweisung an OnPaint von anderem Formular

    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.

  • #2
    <pre>

    procedure TForm2.DoPreview(Sender: OBject);
    begin
    ...
    end;<br>

    Form1.OnPaint := Form2.DoPreview;<br>

    </pre>

    Gruß Hage

    Comment

    Working...
    X