Hola DSK25.
El error es por que estas haciendo mal la creación del puntero
nPoint2. No probé el código (no sé si hace lo que buscas) pero debería ser:
Código:
void __fastcall TForm1::ListBox1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
if(Mover == true) {
TPoint *nPoint2 = new TPoint;
__try {
GetCursorPos(nPoint2);
ListBox1->Left = (nPoint2->x - Form1->Left) - ListBox1->Width/2;
ListBox1->Top = (nPoint2->y - Form1->Top) - ListBox1->Width/2;
}
__finally {
delete nPoint2;
}
};
}
De todos modos tal vez te interese probar este código que hace lo que buscas:
Código:
void __fastcall TForm1::ListBox1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
ReleaseCapture;
SendMessage(ListBox1->Handle, WM_SYSCOMMAND, 0xF012, 0);
}
Saludos.