1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| //---------------------------------------------------------------------------
void __fastcall TVCLManipForm::PanelMovableChildControlMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Shift.Contains(ssCtrl))
{
if (Sender->InheritsFrom(__classid(TControl)))
{
if (((TControl*)Sender)->Parent->InheritsFrom(__classid(TPanel)))
{
if (((TPanel*)((TControl*)Sender)->Parent)->OnMouseDown)
{
((TPanel*)((TControl*)Sender)->Parent)->Perform(WM_LBUTTONDOWN, 0, 0);
((TPanel*)((TControl*)Sender)->Parent)->OnMouseDown(((TControl*)Sender)->Parent, Button, Shift >> ssCtrl, X, Y);
}
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TVCLManipForm::PanelMovableMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
if (Sender->InheritsFrom(__classid(TPanel)))
{
OutputDebugString(/*Ansi*/String("Start Move " + ((TPanel*)Sender)->Name).c_str());
((TPanel*)Sender)->BringToFront();
((TPanel*)Sender)->Invalidate();
((TPanel*)Sender)->Perform(WM_LBUTTONUP, 0, 0);
((TPanel*)Sender)->Perform(WM_SYSCOMMAND, SC_MOVE + 2, 0); // Bloque tant que l'on maintient le bouton de la souris appuyé !
OutputDebugString(/*Ansi*/String("End Move " + ((TPanel*)Sender)->Name).c_str());
}
} |
Partager