AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CM_MOUSELEAVE funktioniert nicht...

Ein Thema von patti · begonnen am 24. Feb 2007 · letzter Beitrag vom 25. Feb 2007
Antwort Antwort
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#1

CM_MOUSELEAVE funktioniert nicht...

  Alt 24. Feb 2007, 18:20
Hey,

Ich habe ein Problem mit CM_MOUSELEAVE und ich glaube ich verzweifle bald . Hier erstmal der Code:

Delphi-Quellcode:
unit haupt;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
    procedure MouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
    procedure MouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.MouseEnter(var Msg: TMessage);
begin
  Color := clGreen;
end;

procedure TForm1.MouseLeave(var Msg: TMessage);
begin
  Color := clRed;
end;

end.
Ich habe das schonmal in einem anderen Programm gemacht und da hat alles wunderbar funktioniert, aber jetzt geht es nicht mehr

Mach ich irgendwas falsch?

Danke im Voraus,
P@Tti
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: CM_MOUSELEAVE funktioniert nicht...

  Alt 24. Feb 2007, 18:25
liegt eventuell irgendetwas auf deiner Form (Panel etc.) was das Form selbst verdeckt?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: CM_MOUSELEAVE funktioniert nicht...

  Alt 24. Feb 2007, 18:29
Nein, es ist im Moment nur die Form, komischerweise funktionier CM_MOUSEENTER schon, also beim Überfahren mit der Maus wird es grün.

Ich habe alles wie bei meinem früheren Programm gemacht, aber jetzt klappt es nicht mehr.

P@Tti
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: CM_MOUSELEAVE funktioniert nicht...

  Alt 24. Feb 2007, 18:38
Übrigens habe ich gesehen, dass dieser Code genauso in der DP zu finden ist, umso mehr wundert es mich, dass es nicht funktioniert...

P@Tti
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: CM_MOUSELEAVE funktioniert nicht...

  Alt 24. Feb 2007, 18:45
Moin Patti,

Zitat von patti:
Übrigens habe ich gesehen, dass dieser Code genauso in der DP zu finden ist, umso mehr wundert es mich, dass es nicht funktioniert...
Bist Du sicher, dass Du den Code im Zusammenhang mit einem Formular gesehen hast?
Ich habe es gerade einmal ausprobiert, und musste feststellen, dass es funktioniert, allerdings nur einmal, als ich mit dem Cursor Richtung Caption gegangen bin.
Wenn Du aber die linke Maustaste gedrückt hast, wenn sich der Cursor über dem Formular befindet, und dann, mit gedrückter Taste, vom Formular runtergehst, funktioniert es immer.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#6

Re: CM_MOUSELEAVE funktioniert nicht...

  Alt 24. Feb 2007, 19:57
Hallo,

da MSDN kennt MSDN-Library durchsuchenCM_MOUSEENTER/LEAVE gar nicht... dafür aber MSDN-Library durchsuchenWM_MOUSELEAVE, ENTER aber nicht.

Äußerst komisch, das ganze

Was ist denn mit den VCL-Events OnMouseEnter/Leave? Die machens genauso... ist in TWinControl deklariert...
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: CM_MOUSELEAVE funktioniert nicht...

  Alt 24. Feb 2007, 20:02
dafür gibt es MSDN-Library durchsuchenWM_MOUSEHOVER. Findet man alles wenn man im MSDN sich das ganze mal durchliest.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: CM_MOUSELEAVE funktioniert nicht...

  Alt 24. Feb 2007, 20:12
Zitat:
Ich habe es gerade einmal ausprobiert, und musste feststellen, dass es funktioniert, allerdings nur einmal, als ich mit dem Cursor Richtung Caption gegangen bin.
Wenn Du aber die linke Maustaste gedrückt hast, wenn sich der Cursor über dem Formular befindet, und dann, mit gedrückter Taste, vom Formular runtergehst, funktioniert es immer.
Und das heißt natürlich nichts anderes als: Es funktioniert deswegen nicht, weil die Mouse-Messages nach dem Verlassen deiner Form damit ja auch gar nicht mehr an deine Form abgesendet werden, sondern stattdessen dann an die Form, über der die Maus danach herausgekommen ist. Verlässt Du deine Form über die Title-Bar, dann existiert natürlich auch noch genug Zeit, diese Message auch überhaupt noch erhalten zu können. Und hälst Du eine Maustaste gedrück, dann unterbleibt dieser Wechsel des Mouse-Message-Empfängers und zwar wegen des dann noch aktiven Mouse-capturings.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: CM_MOUSELEAVE funktioniert nicht...

  Alt 25. Feb 2007, 12:32
Sorry, dass ich erst jetzt antworte, aber ich war gestern abend nicht mehr online...

Ich habe jetzt einen Timer auf die Form gesetzt mit Interval 10 und als OnTimer-Ereignis ein einfaches
Application.ProcessMessages; Ist zwar nicht die beste Lösung, funktioniert aber wenigstens...

Danke für eure Antworten und Bemühungen!

P@Tti
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:42 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