PDA

Ver la Versión Completa : Invocar OnMouseDown


Angel.Matilla
11-05-2020, 11:07:19
Espero que todos se encuentren bien dentro de este follón en el que estamos metidos.

En un formulario tengo declarado un TVirtualStringTree y necesito que si se selecciona determinado elemento en función de un valor se llame al evento OnMouseDown pero no sé como hacer la llamada. Estoy probando con esto:
void __fastcall TfSocios::LisSocDblClick(TObject *Sender)
{
POINT MousePos;
GetCursorPos(&MousePos);

if (((PTreeSoc)LisSoc->GetNodeData(LisSoc->FocusedNode))->Socio < 1)
LisSocMouseDown(NULL, mbRight, ssRight, MousePos.x, MousePos.y);
}
pero ponga lo que ponga en el tercer parámetro (TShifState Shift) me da error de compilación; si pongo ssRight me dice que no puedo convertir Classes__1 en TShiftState, etc. ¿Alguna idea de como puedo hacer esa llamada?

escafandra
11-05-2020, 13:54:16
Trata de esta manera:


void __fastcall TfSocios::LisSocDblClick(TObject *Sender)
{
POINT MousePos;
GetCursorPos(&MousePos);

if (((PTreeSoc)LisSoc->GetNodeData(LisSoc->FocusedNode))->Socio < 1)
LisSocMouseDown(NULL, mbRight, TShiftState() << ssRight, MousePos.x, MousePos.y);
}


Para conocer el valor de TShiftState Shift:

Shift.Contains(ssRight)


Saludos.

Angel.Matilla
12-05-2020, 10:48:38
Perfecto. Muchas gracias.