Guauuuuu, tio no se que haria yo mal, quizas es que activas alguna propiedad o algo pero tu proyecto va muy bien y solo le hice un par de cambios para que funcione mas o menos como quiero porque por ejemplo en el tuyo cuando mueves automaticamente el puntero se va a la posicion x=0, y=0 de la imagen y le quité lo de que tenga que pulsar la tecla de Ctrol y va genia pero me falta un detalle:
Código:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TPoint *TheSpot = new TPoint;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
bool Moving = false;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Image1->Picture->LoadFromFile(ExtractFilePath(Application->ExeName)+
"LogoRad.bmp");
}
void __fastcall TForm1::ControlMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
//Moving = Shift.Contains(ssCtrl);
Moving = true;
TheSpot->x = X;
TheSpot->y = Y;
}
void __fastcall TForm1::ControlMouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
TControl *Ctrl = static_cast<TControl*>(Sender);
if (Moving) {
Screen->Cursor = crCross;
Ctrl->Left = X + Ctrl->Left - TheSpot->x;
Ctrl->Top = Y + Ctrl->Top - TheSpot->y;
}
}
void __fastcall TForm1::ControlMouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
Moving = false;
Screen->Cursor = crDefault;
}
Quiero que cuando arrastres la imagen y llegues al final de la imagen por cualquiera de sus lados ya no pueda desplazarse mas, o sea, que puedas arrastrar hasta que por ejemplo la parte superior de la imagen llegue a la parte superior del scrollbox y lo mismo por cualquiera de sus lados, no se si me explico. Tiene que ser super facil pero no veo la forma.