PDA

View Full Version : Pb : On MouseOver


CerfVolant
12-02-2006, 12:54 AM
Bonsoir,

Je cree une form avec une image bitmap (STATIC) et si je veux creér un évenement avec OnMouseOver, cela me crée une erreur (aucune ligne de code n'a encore été entré dans la function) :

Welcome to the PPL Console

PPL 1.07 Pro Compiler Error Report

error: (c:\documents and settings\vincent\mes documents\pocketpc\création soft\ppl_prog\boss\__base__\test.ppl) [Syntax error at 'WM_MOUSEHOVER' (34,24)]


visiblement il doit y avoir un bug. Sur le fichier ppl creé au niveau ligne 34 cela donne

32- BITMAP101$ = NewControl(101, "STATIC", NULL, "", WS_VISIBLE|SS_BITMAP, FORM100$, 64, 80, 80, 64);
33- SetWindowPos(BITMAP101$, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
34- AddEvent(BITMAP101$, WM_MOUSEHOVER, 0, &BITMAP101_OnMouseHover);
35- CreateEvent("BITMAP101", BITMAP101$);


Idem avec OnMouseLeave et OnMouseActivate

une idée ??

kornalius
12-02-2006, 04:08 AM
C'est message ne sont pas definis dans le Windows.ppl.

Elles doivent être activé avec:

Ajoutez ceci dans Lib\Windows.ppl sur le PC et PPC.

#define WM_MOUSEHOVER 0x02A1
#define WM_MOUSELEAVE 0x02A3
#define WM_MOUSEACTIVATE 0x0021

#define MA_ACTIVATE 1
#define MA_ACTIVATEANDEAT 2
#define MA_NOACTIVATE 3
#define MA_NOACTIVATEANDEAT 4

#define TME_HOVER 0x00000001
#define TME_LEAVE 0x00000002
#define TME_QUERY 0x40000000
#define TME_CANCEL 0x80000000

#define HOVER_DEFAULT 0xFFFFFFFF

#define TRACKMOUSEEVENT {"cbSize", "dwFlags", "hwndTrack", "dwHoverTime"}

Voici ce que vous devez ajouter au Form Creation code maintenant:

struct(s$, TRACKMOUSEEVENT);
s.cbsize$ = sizeof(s$);
s.dwFlags$ = TME_HOVER | TME_LEAVE;
s.hwndTrack$ = BITMAP101$;
s.dwHoverTime$ = HOVER_DEFAULT;
TrackMouseEvent(s$);

Ceci devrait activer les messages WM_MOUSEHOVER et WM_MOUSELEAVE.

CerfVolant
12-02-2006, 11:24 AM
J'ai ajouté le 'Fix' dans Runtime\Lib\Windows.ppl

mais a l'execution y toujour un probleme :

Welcome to the PPL Console


PPL 1.07 Pro Compiler Error Report

error: (c:\documents and settings\vincent\mes documents\pocketpc\création soft\ppl_prog\boss\__base__\Essai.frm#) [Syntax error at 'RETURN' (7,3)]
error: (c:\documents and settings\vincent\mes documents\pocketpc\création soft\ppl_prog\boss\__base__\Essai.frm#) [: or , expected at ';' (7,16)]


ci joint le zip de mon exemple, ca vaut souvent mieux qu'un long discours[br]1165058656_89_FT2141_essai.zip

kornalius
12-02-2006, 07:34 PM
Il semble manquer un beau petit ; à la fin de la ligne avant le RETURN.

CerfVolant
12-03-2006, 12:13 AM
Je ne vois pas ou est situé ce return ??

kornalius
12-03-2006, 03:34 PM
Voici les correctifs à apporter dans Windows.ppl:

#define _TRACKMOUSEEVENT {"cbSize", "dwFlags", "hwndTrack", "dwHoverTime"}

#declare TrackMouseEvent apidll TrackMouseEvent 1 1

Et puis dans le Form Creation Code:

struct(s$, _TRACKMOUSEEVENT);