AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Form schliessen wenn die Maus das Form verlässt.
Thema durchsuchen
Ansicht
Themen-Optionen

Form schliessen wenn die Maus das Form verlässt.

Ein Thema von Kostas · begonnen am 6. Jun 2005 · letzter Beitrag vom 7. Jun 2005
Antwort Antwort
Seite 1 von 2  1 2      
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Form schliessen wenn die Maus das Form verlässt.

  Alt 6. Jun 2005, 16:18
Hallo Zusammen,

ich erzeuge zur Laufzeit eine Forminstanz und
plaziere den Mauszeiger in der Mitte des Forms.
Sobald nun der Mauszeiger das Form verläst soll
das Form geschlossen werden. Das Form wird
übrigens nicht Modal erzeugt sondern einfach mit
Show.

Hat jemand eine Idee?

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Form schliessen wenn die Maus das Form verlässt.

  Alt 6. Jun 2005, 16:30
Hallo,
du könntest mit getcursorpos() die aktuelle mausposition ermitteln und prüfen, ob sich das Ergebniss noch auf dem Formular befindet. Oder du fängst die WM_MouseMove (hieß die so?) ab, deren Parameter 0 ist, wenn sich der Cursor nicht auf dem Formular befindet.

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Form schliessen wenn die Maus das Form verlässt.

  Alt 6. Jun 2005, 16:34
Moin!

Reagiere auf WM_MouseLeave bzw. CM_MouseLeave.

MfG
Muetze1
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

Re: Form schliessen wenn die Maus das Form verlässt.

  Alt 6. Jun 2005, 16:59
Danke für die schnelle Antwort Muetze1 und Florian Bernd.

ich habe leider keine Ahnung wie ich ein Event erzeugen kann
welches WM_Mouse... Botschaften des Forms behandelt.
Ich habe es mit OnMouseMove probiert doch leider funkt
es nicht wenn ich zu schnell die maus aus dem Form
bewege. Die Koordinaten werde dann nicht aktualisiert.

Könnte Ihr mir bitte verraten wie man so ein Event registriert?

Herzlichen Dank nochmals

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#5

Re: Form schliessen wenn die Maus das Form verlässt.

  Alt 6. Jun 2005, 17:05
Ich glaub ungefähr so:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    //Prozeduren und Objekte
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    procedure WndProc(var Msg: TMessage); override;

//...

procedure TForm1.WndProc(var Msg: TMessage);
var
  Point: TPoint;
begin
  if Msg.Msg = WM_USER + 20 then
  begin
    if Msg.1Param = WM_MOUSELEAVE then
      FormX.Close;
  end;
  inherited;
end;
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Form schliessen wenn die Maus das Form verlässt.

  Alt 6. Jun 2005, 17:07
Moin!

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    //Prozeduren und Objekte
  private
    { Private-Deklarationen }
    Procedure WMMouseLeave(Var Msg: TMessage); Message WM_MOUSELEAVE;
  public
    { Public-Deklarationen }

//...

procedure TForm1.WMMouseLeave(var Msg: TMessage);
begin
  // Whatever you like to do...
end;
MfG
Muetze1
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

Re: Form schliessen wenn die Maus das Form verlässt.

  Alt 6. Jun 2005, 17:40
sorry, aber so geht es nicht.
WMMouseLeave wird einfach nicht ausgeführt.
Irgend eine Idee warum?

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    //Prozeduren und Objekte
  private
    { Private-Deklarationen }
    Procedure WMMouseLeave(Var Msg: TMessage); Message WM_MOUSELEAVE;
  public
    { Public-Deklarationen }

//...

procedure TForm1.WMMouseLeave(var Msg: TMessage);
begin
  Form1.close;
end;
  Mit Zitat antworten Zitat
Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#8

Re: Form schliessen wenn die Maus das Form verlässt.

  Alt 6. Jun 2005, 17:45
Hi,
ändere
Procedure WMMouseLeave(Var Msg: TMessage); Message WM_MOUSELEAVE; zu
Procedure WMMouseLeave(Var Msg: TMessage); Message CM_MOUSELEAVE; Win32.API
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Form schliessen wenn die Maus das Form verlässt.

  Alt 6. Jun 2005, 17:53
Moin!

CM_MOUSELEAVE wird von der Form selbst verschickt - und dann natürlich nicht an sich selber. Ich habe mit beiden Botschaften daneben gelegen, ich schau mal wodran es hapert...

WM_MOUSELEAVE springt erst an, wenn ein anderes Fenster aktiviert wird...

MfG
Muetze1
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.095 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

Re: Form schliessen wenn die Maus das Form verlässt.

  Alt 6. Jun 2005, 18:24
CM_MOUSELEAVE; funkt fast einwandfrei.

Wenn das Form leer ist funkt es einwandfrei mit CM_MOUSELEAVE.
Fahre ich jedoch über ein Form1.label drüber, wird
das form geschlossen.
Ist es möglich das dieser event nur gefeuert wird wenn die
Maus die Formgrenzen verlassen hat?

Gruß Kostas
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz