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"...
mon code de départ:
void __fastcall TFormReglage::ApplicationEvents1Message(tagMSG &Msg,
bool &Handled)
{
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.