steph12358
Messages postés149Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention10 décembre 2009
-
6 févr. 2009 à 15:44
steph12358
Messages postés149Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention10 décembre 2009
-
9 févr. 2009 à 14:16
Bonjour
En utilisant un TApplicationEvent:
Dans un Form1 je positionne un bool à vrai quand l'utilisateur clique sur Image1 (un TImage, évènement OnMouseDown de Image1)
le but: laisser le bool à vrai tant qu'on continue de cliquer dans l'image
mais le positionner à faux dès qu'on clique sur un autre contrôle de l'application (même formulaire ou d'un autre formulaire). Ca fonctionnerait un peu comme un événement "MouseOut"...
static unsigned int oldwparam;
static long oldlparam;
switch (Msg.message)
{
case WM_LBUTTONDOWN:
if ( OkForm1 )
{
//(là, mon test n'est pas le bon: je voudrais pouvoir tester que le controle n'est plus Form1->Image1)
if ( ( oldwparam != Msg.wParam ) && ( oldlparam != Msg.lParam ) )
if (Form1->OnDessine)
Form1->OnDessine = false;
oldwparam = Msg.wParam;
oldlparam = Msg.lParam;
break;
}
case WM_LBUTTONUP:
//...
default:
//...
}
}
rem: c'est sous C++ Builder mais ça doit pouvoir se généraliser et intéresser quelqu'un.
steph12358
Messages postés149Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention10 décembre 20091 9 févr. 2009 à 14:16
"
Rappel: je cherche, "tout simplement" , à savoir quel contrôle de mon application a provoqué l'événement WM_LBUTTONDOWN...
"
EUREKA ! j'ai trouvé de quoi me tirer d'affaire
dans TForm1::ApplicationEvents1Message(tagMSG &Msg,
bool &Handled)
le paramètre Msg a une propriété hwnd.
Avec l'instruction:
AnsiString machin = FindControl(Msg.hwnd)->Name;
je retrouve le nom du "parent" du controle qui a "shooté" l'évènement. Je creuserai plus tard pour trouver le nom exact du controle
steph12358
Messages postés149Date d'inscriptionjeudi 22 avril 2004StatutMembreDernière intervention10 décembre 20091 9 févr. 2009 à 11:19
Bonjour
je dois mal formuler ma demande car je n'ai toujours rien trouvé qui m'aide un tant soit peu sur le lien que vous m'avez indiqué, à part mes propres "contributions"...
Rappel: je cherche, "tout simplement" , à savoir quel contrôle de mon application a provoqué l'événement WM_LBUTTONDOWN...