Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi aus Form1 auf Ereignis von Form2 reagieren (https://www.delphipraxis.net/31320-aus-form1-auf-ereignis-von-form2-reagieren.html)

DerNewbie 7. Okt 2004 10:32


aus Form1 auf Ereignis von Form2 reagieren
 
Hi, ich stehe vor folgendem Problem.

Ich habe 2 verschiede Forms, Form1 und Form2. Drückt man in Form1 einen Button wird etwas auf Form2.Canvas gezeichnet.
Das Problem, sobald sich etwas für Form2 legt und man danach Form2 wieder in den Vordergrund holt sind die gezeichneten
Dinge weg.

Gibt es eine Möglichkeit, dass ich aus Form1 auf das OnPaint ereignis von Form2 reagiere und die Objekte damit neuzeichne?
Oder gibts andere Ideen wie man das umgehen/lösen könnte?

Gruß Der Newbie

Wuaegner 7. Okt 2004 11:00

Re: aus Form1 auf Ereignis von Form2 reagieren
 
HI!
Nimm dir ein Hilfsbitmap, zeichne alles darauf und löse nach jeder Neuzeichnung das OnPaintEreignis deiner PaintBox oder Formulars aus, das so aussieht:
Code:
BitBlt(PB.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, bmp.Canvas.Handle,
    0, 0, SrcCopy);
"PB" in "PB.Canvas.Handle" musst du durch deinen Paintboxnamen oder was auch immer ersetzen.

alcaeus 7. Okt 2004 11:01

Re: aus Form1 auf Ereignis von Form2 reagieren
 
Hi DerNewbie,

erstmal herzlich willkommen in der DP.
Die Lösung ist eigentlich nicht so kompliziert. Ich schätze mal du zeichnest auf dem Canvas des Forms. Also schreibst du eine Behandlungsroutine für das OnPaint-Ereignis von Form2.
Anschließend bindest du mit Alt+F11 Unit1 in Unit2 ein. Im OnPaint-Ereignis kannst du nun ganz einfach die Prozedur zum Zeichnen aufrufen, z.B. mit
Delphi-Quellcode:
Form1.Button1Click(Sender)
Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz