![]() |
OnMouseLeave für die TPaintbox?
Ich habe in D2k6 eine TPaintbox benutzt, welche das Event "OnMouseLeave" hatte. Aber wenn ich mit (z.b) D6 pogrammiere, kennt er das Ereignis nicht. Gibt es irgendwie eine mögklihckeit das selber hinzubekommen?
|
Re: OnMouseLeave für die TPaintbox?
Hallo,
so geht es bei mir:
Delphi-Quellcode:
Oder eine eigene PaintBox Komponente erstellen.
private
OldPbWindowProc: TWndMethod; procedure PbSubClassWndProc(var Message: TMessage); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.PbSubClassWndProc(var Message: TMessage); begin if Message.Msg= CM_MouseLeave then begin beep;//Demo end; OldPbWindowProc(Message); end; procedure TForm1.FormCreate(Sender: TObject); begin OldPbWindowProc:= PaintBox1.WindowProc; PaintBox1.WindowProc:= PbSubClassWndProc; end; procedure TForm1.FormDestroy(Sender: TObject); begin PaintBox1.WindowProc:= OldPbWindowProc; end; |
Re: OnMouseLeave für die TPaintbox?
is gar nicht soo schwer...
1. zum start des Programms: aktuelle Mausposition ermitteln und daraus bestimmen, ob die maus in der paintbox liegt (über Mouse.Position.x, Mouse.Position.y, PaintBox1.Left, PaintBox1.Top, PaintBox1.Width, PaintBox1.Heigth kann man das bestimmen und dann in den Wahrheitswert INPAINTBOX1: boolean schreiben) 2. modifiziere das Ereignis ONMouseMove deines Formulars folgendermaßen: mach das gleiche wie unter 1., schreibe das ergebnis (also ob die maus in der paintbox liegt) aber in eine andere variable, z.B. INPAINTBOX2: boolean; 3. Vergleiche INPAINTBOX1 und INPAINTBOX2 wenn INPAINTBOX1=true und INPAINTBOX2=false dann ...(hier folgen deine anweisungen für das ereignis OnPaintBoxMouseLeave) jetzt noch den Wert von PAINTBOX2 in PAINTBOX2 schreiben und fertig 4. fast vergessen: das ereignis ONMouseMove des Formulars musst du auch noch dem Ereignis OnMouseMove der PaintBox1 zuordnen. wenn du einen expliziten Quelltext brauchst sag nochma bescheid... muss ich ein paar Formulierungen nachschaun |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:31 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