Unterformular beeinflussen

Rund um die LCL und andere Komponenten
Antworten
lzuser
Beiträge: 97
Registriert: Sa 20. Jun 2009, 16:00
OS, Lazarus, FPC: Win10 20H2, Laz 2.0.8 auch Linux Mint Mate 20, Laz 2.0.6
CPU-Target: 64Bit

Unterformular beeinflussen

Beitrag von lzuser »

Hauptformular
mit
procedure Ausgabe(Canvas:TCanvas);
begin ... (Das ändert sich von Programm zu Programm) ... end;

Unterformular zur Ausgabe
procedure TUnterformular.PaintboxPaint(Sender: TObject);
begin ... Ausgabe(Paintbox.Canvas); ... end;

funktioniert, wenn ich im Unterformular uses Hauptformular einbinde.
Ich möchte aber das fertige Unterformular nicht mehr "anfassen".
und es trotzdem für verschiedene Hauptformulare nutzen, in denen
ich nur eine jeweils passende Prozedur Ausgabe schreibe.

Wie kann man vom Hauptformular in ein Paint-Ereignis des Unterformulars
so wie oben skizziert eingreifen? Die Procedure Ausgabe verändert sich dabei wie gesagt.

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Unterformular beeinflussen

Beitrag von Socke »

Quick and Dirty: Du fügst das Unterformular bei der Uses-Klausel des Hauptformulars hinzu. Das Hauptformular registriert dann im OnCreate o.ä. den Ereignisbehandler.

Code: Alles auswählen

FUnterformular.Paintbox.OnPaint := @Ausgabe
Richtig OOP-gekapselt besitzt das Unterformular eine entsprechende Eigenschaft, in dem das Hauptformular einen Ereignisbehandler ablegt.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antworten