Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Moja je ruka brza od handlera!

[es] :: Pascal / Delphi / Kylix :: Moja je ruka brza od handlera!

[ Pregleda: 2373 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

PeraKojotSuperGenije
Sasa Popovic
Beograd

Član broj: 44507
Poruke: 126
*.158.eunet.yu.



Profil

icon Moja je ruka brza od handlera!04.04.2006. u 12:17 - pre 219 meseci
Imam ovakav projekat (malo komplikovaniji od ovoga :-)
Code:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MMSystem, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure CMMouseEnter(var msg: TMessage) ; message CM_MOUSEENTER;
    procedure CMMouseLeave(var msg: TMessage) ; message CM_MOUSELEAVE;
  private
    { Private declarations }
  public
    { Public declarations }
  end;




var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.CMMouseEnter(var msg: TMessage) ;
begin
   form1.Label1.Caption:='Entered';
end;

procedure TForm1.CMMouseLeave(var msg: TMessage) ;
begin
   form1.Label1.Caption:='Left';
end;

end.


Kada je mis na formi i brzo ga pomerim u neku stranu tako da vise nije iznad forme, procedura CMMMouseLeave se ne izvrsi. Kasnije se procedura aktivira ako bilo sta pritisnem na tastaturi i kliknem misem negde izvan forme. Da li ove handlere mogu da "popravim" tako da budu "brzi".
Sendvic uvek pada na namazanu stranu!
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Moja je ruka brza od handlera!04.04.2006. u 12:54 - pre 219 meseci
Handler nije "spor" nego se jednostavno ne pozove uopste. Da bi se MouseEnter i MouseLeave poruka poslala mora da se desi pomeranje misa po formi. Sad zamisli ovaj slucaj: mis se nalazi blizu kraja prozora, brzo pomeris misa i on se pomeri za, recimo, 20 pixela i odjednom se nalazi van forme... forma ne dobija nikakav MouseMove event jer mis nije vise u formi i ne zna ni da mis nije vise iznad nje. Mozda nisam bas najtacnije objasnio, ali sustina je da ti nisi ultra brz nego da ti aplikacija ima bug :)

Najjednostavnije resenje bi bilo da ubacis i jedan TTimer na formu i na, recimo, 100ms proveravas da li je mis iznad forme ili ne i da na osnovu toga odredjujes kako ce se forma ponasati.
 
Odgovor na temu

bondja

Član broj: 10286
Poruke: 167
*.adsl.sezampro.yu.



+3 Profil

icon Re: Moja je ruka brza od handlera!04.04.2006. u 13:26 - pre 219 meseci
Da bi se nakacio na windows-ov mouse event (mouse hook), mozes da probas da iskoristis:
CallNextHookEx sa WH_JOURNALRECORD konstantom. U ovom slucaju ti ne treba DLL.

Jednostavnija varijanta je da koristis DLL (Hook mouse DLL)....

poz.


[Ovu poruku je menjao bondja dana 04.04.2006. u 14:26 GMT+1]
 
Odgovor na temu

PeraKojotSuperGenije
Sasa Popovic
Beograd

Član broj: 44507
Poruke: 126
*.178.eunet.yu.



Profil

icon Re: Moja je ruka brza od handlera!04.04.2006. u 20:34 - pre 219 meseci
Ma nisam ja ni mislio da sam brzi od zvuka :-)

Problem sam resio tako sto sam na formu dodao jedam Timer koji relativno cesto (50ms) radi
Code:
timer1.tag:=timer1.tag+1
i to mi je resilo problem.

Mozda izgleda sasavo, ali meni je pomoglo.

@Srki_82 Je l' to moj bug ili Borlandov?
Sendvic uvek pada na namazanu stranu!
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
82.208.201.*

ICQ: 246436949


+10 Profil

icon Re: Moja je ruka brza od handlera!04.04.2006. u 20:40 - pre 219 meseci
Hehe... pa... nije to bas bug... tako radi Windows... probaj da postavis kursor na i onda ga brzo pomeri... videces da ce proci odredjeno vreme pre nego sto Windows shvati da si pomerio misa. Ako cesto proveravas, nece se ni primetiti da se ovako nesto desava... a ako ti i nije bas bitno da reakcija bude brza (kao u primeru koji sam u ovoj poruci pokazao) onda je dovoljno da proveravas jednom u sekundi.

[Ovu poruku je menjao Srki_82 dana 04.04.2006. u 21:40 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Moja je ruka brza od handlera!

[ Pregleda: 2373 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.