Autor Beitrag
lars
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 24.10.02 12:16 
Hallo! Ich habe in einem Fenster eine Routine OnMouseLeave deklariert, weil ich beim verlassen des Fensters im Fenster ein Objekt umzeichnen will. Nun funktioniert aber der Aufruf dieser Routine nicht immer, manchmal scheint das System sie zu verschlucken, insbesondere wenn ich das Fenster "schnell" verlasse. Kann mir jemand helfen, woran das liegen könnte, bzw. wie ich das beheben kann?
Danke
Lars

Deklaration:
ausblenden Quelltext
1:
procedure CMMouseLeave (var Message: TMessage); message CM_MOUSELEAVE;					

Code:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.CMMouseLeave(var Message: TMessage);
begin
  if Assigned(OnMouseLeave) then OnMouseLeave(Self);

// Hier die Zeichenroutine ...

  Panel.RePaint;
end;
Cheatzs
Hält's aus hier
Beiträge: 11



BeitragVerfasst: Do 24.10.02 14:31 
Hi!

Hab das Problem auch imemr noch! Aber vielleicht helfen dir ja meine Überlegungen.

Also ich würd einen Timer mit ne Interval von 1 sek oder weniger machen. Dieser müsste abfragen, wo die Maus ist. Dann musst du noch die Fläche deines Programmes ausrechnen und schauen, ob die Maus über dem Formular ist. Wenn ja, machst du irgendne Variable auf True. Bei nächsten Durchlauf ist dann die Maus vielleicht nicht mehr über dem Form. Wenn der Timer dann feststellt, dass die Maus mal über derm Form war, dann führt er die Funktion aus. Dann brauchst du nur noch die Variable wieder auf False zu setzen.

Also sowas müsste gehen. Habs aber noch net ausprobiert.

Ich hoffe, ich hab dir damit geholfen!

Tschau

_________________
Delphi - Delphi - Delphi, was sonst?