AGB  ·  Datenschutz  ·  Impressum  







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

onMouseMove abfragen?

Ein Thema von smart · begonnen am 28. Mai 2007 · letzter Beitrag vom 9. Jul 2007
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#11

Re: onMouseMove abfragen?

  Alt 29. Mai 2007, 10:31
Zitat von TeronG:
Wann bzw. wo frägst du denn ab!?
Morgen!

in onMouseMove.

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#12

Re: onMouseMove abfragen?

  Alt 29. Mai 2007, 10:33
Im MouseMove des Panels kann er ja nur True werden weil ja nur ausgelöst wird, wenn Maus drüber ist . Du müsstest also auch neben deinem Panel abfragen.
Timer, onIdle, onMouseMove der restlichen Anwendung, ...

EDIT: auch Morgeeen
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
877 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: onMouseMove abfragen?

  Alt 29. Mai 2007, 10:37
Eine sauberere Lösung dürfte aber sein, wenn man die Nachrichten MouseLeave/MouseEnter abfängt. Dürfte es einiges zu im Forum geben.
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#14

Re: onMouseMove abfragen?

  Alt 29. Mai 2007, 10:47
Zitat von TeronG:
Im MouseMove des Panels kann er ja nur True werden weil ja nur ausgelöst wird, wenn Maus drüber ist . Du müsstest also auch neben deinem Panel abfragen.
Timer, onIdle, onMouseMove der restlichen Anwendung, ...

EDIT: auch Morgeeen
Hast Recht, dass war mein Denkfehler. Wenn ich z. B. in einem Timer abfrage klappt es.

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#15

Re: onMouseMove abfragen?

  Alt 29. Mai 2007, 11:14
Zitat von smart:
Hast Recht, dass war mein Denkfehler. Wenn ich z. B. in einem Timer abfrage klappt es.

Gruß
Heike
Hab's bei mir auch auf die schnelle mit nem Timer getestet

Mfg
Ich


EDIT: @Gausi: Ja Leave & Enter währen schon gut nur hat das D7-Panel sowas leider nicht
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
877 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: onMouseMove abfragen?

  Alt 29. Mai 2007, 11:39
Dass das D7-Panel das nicht hat, ist schon klar, aber von Panel ne Komponente abzuleiten, die das hat, ist nicht wirklich schwierig. Hab ich vor kurzem mit TImage gemacht, und ich habe von Komponentenentwicklung keinen Plan - Wenn ich wieder zu hause bin, kann ich den Code mal rauskramen, falls Bedarf besteht.
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#17

Re: onMouseMove abfragen?

  Alt 29. Mai 2007, 11:52
Zitat von Gausi:
Dass das D7-Panel das nicht hat, ist schon klar, aber von Panel ne Komponente abzuleiten, die das hat, ist nicht wirklich schwierig. Hab ich vor kurzem mit TImage gemacht, und ich habe von Komponentenentwicklung keinen Plan - Wenn ich wieder zu hause bin, kann ich den Code mal rauskramen, falls Bedarf besteht.
Ja, gern. Ich lerne immer gern was dazu.

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: onMouseMove abfragen?

  Alt 29. Mai 2007, 12:46
Hi,

Subclassing wäre noch eine andere Möglichkeit.
Delphi-Quellcode:
  private
    OldWindowProc: TWndMethod;
    procedure PanSubClassWndProc(var Message: TMessage);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.PanSubClassWndProc(var Message: TMessage);
begin
  case Message.Msg of
    CM_MOUSELEAVE: Panel1.Color := clBlack;
    CM_MOUSEENTER: Panel1.Color := clGreen;
  end;
  OldWindowProc(Message);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  OldWindowProc:= Panel1.WindowProc;
  Panel1.WindowProc:= PanSubClassWndProc;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  Panel1.WindowProc:= OldWindowProc;
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
877 Beiträge
 
Delphi 11 Alexandria
 
#19

Re: onMouseMove abfragen?

  Alt 29. Mai 2007, 16:22
Ich meinte hlat sowas in der Art:
Delphi-Quellcode:
unit Mousepanel;

interface

uses
  Messages, SysUtils, Classes, Controls, ExtCtrls;

type
  tMousepanel = class(TPanel)
  private
    { Private-Deklarationen }
    FOnMouseEnter: TNotifyEvent;
    FOnMouseLeave: TNotifyEvent;
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
    procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
    property OnMouseEnter: TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
    property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [tMousepanel]);
end;

procedure tMousepanel.CMMouseEnter(var Message: TMessage);
begin
  if assigned(FOnMouseEnter) then FOnMouseEnter(Self);
end;

procedure tMousepanel.CMMouseLeave(var Message: TMessage);
begin
  if assigned(FOnMouseLeave) then FOnMouseLeave(Self);
end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#20

Re: onMouseMove abfragen?

  Alt 29. Mai 2007, 18:56
Vielen Dank, an Euch Beiden. Habe jetzt einiges lernen können. Ich habe beides getestet. Klappt sehr gut. Hier in meinem Fall habe ich es mit Subclassing gemacht. Das kannt ich noch garnicht. Toll was damit alles anfangen kann. Die Sache mit dem Panel ableiten ist auch nit schlecht und vorallen sehr gut zu gebrauchen wenn man es in mehreren Anwendungen einbauen möchte.

Nochmals, vielen Dank

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 12:55 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