Автор: Олег Кулабухов

 Нижеприведенный пример показывает как перемещать компонент при перетаскивании его нажатой левой кнопкой мыши при нажатом Ctrl.

 

Code:

procedure TForm1.Button1MouseDown(Sender: TObject; Button:

TMouseButton; Shift: TShiftState; X, Y: Integer);

{$IFNDEF WIN32}

var

pt: TPoint;

{$ENDIF}

begin

if ssCtrl in Shift then

begin

   ReleaseCapture;

   SendMessage(Button1.Handle, WM_SYSCOMMAND, 61458, 0);

{$IFNDEF WIN32}

   GetCursorPos(pt);

   SendMessage(Button1.Handle,

     WM_LBUTTONUP,

     MK_CONTROL,

     Longint(pt));

{$ENDIF}

end;

end;

 

 

 

 

  

Code:

procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

const SC_DragMove = $F012; { a magic number }

{©Drkb v.3(2007): www.drkb.ru}

 

begin

ReleaseCapture;

Form1.perform(WM_SysCommand, SC_DragMove, 0);

end;

 

 

Автор ответа: TAPAKAH

 

Взято с Vingrad.ru https://forum.vingrad.ru

 

Автор: Павел

 

Во время работы над одной программой предо мной встала задача организации перемещения нескольких изображений пользователем с помощью мыши. Я не крутой мастер DELPHI, и найденное мною решение не претендует на полноту, его недостатки я рассмотрю ниже, но я надеюсь, что опыт, приобретённый при решении будет полезен читателю.

 

Итак, задача. На форме размещены несколько изображений, загружаемых из внешних файлов (их имена 1.bmp, 2.bmp и т.д.).

 

Изображения должны быть перемещаемыми с помощью мыши.