Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

Перетаскивание формы!   Найти похожие ветки 

 
Ladan   (2006-05-27 01:07) [0]

Доброго времени суток!  Помогите решить проблему!
Как сделать так что бы нажав на картинку и удерживая кнопку мыши можно было перетаскивать всю форму? Если таковое возможно. Заранее спасибо!


 
Rial ©   (2006-05-27 01:14) [1]

1. Кидаешь на формы рисунок.
2. Переменные глобальные:
Var Flag:Boolean;
   BX,BY:Integer;

В событиях рисунка пишешь:

MouseDown:

begin
F:=True;
BX:=X;
BY:=Y;
end;

MouseUp:
begin
F:=False;
end;

MouseMove:
begin
If (F) then begin
  Left:=Left+X-BX;
  Top:=Top+Y-BY;
end;
end;


 
Джо ©   (2006-05-27 01:17) [2]

implementation

{$R *.dfm}

var
 PrevPoint: TPoint;
 Moving: Boolean;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 PrevPoint := Mouse.CursorPos;
 Moving := True;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 Moving := False
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
 if Moving then
 begin
   SetBounds(
     Left + (Mouse.CursorPos.X - PrevPoint.X),
     Top + (Mouse.CursorPos.Y - PrevPoint.Y),
     Width,
     Height
   );
   PrevPoint := Mouse.CursorPos;
 end
end;


 
Loginov Dmitry ©   (2006-05-27 09:17) [3]

Не пойму, зачем нужна лишняя процедура OnMouseUp и какой-то флаг. Ведь в OnMouseMove всегда можно воспользоваться переменной Shift.


 
TUser ©   (2006-05-27 09:55) [4]

Поймать WM_NCHITTEST и выставить там флажок htCaption. Подробности в справку и яндексе.


 
Ladan   (2006-05-27 15:52) [5]

Спасибо! Очень помогли!!!


 
unknown ©   (2006-05-27 21:33) [6]


> Ladan   (27.05.06 01:07)


procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: integer);
begin
 ReleaseCapture;
 Perform(WM_SYSCOMMAND, $F012, 0);
end;



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.055 c
1-1146844311
Teddy24
2006-05-05 19:51
2006.06.11
Подключение к сетевому ресурсу БД из Delphi


2-1148222467
sholom
2006-05-21 18:41
2006.06.11
Не реагировать на нажатие клавиш


15-1147776677
Новичоккк
2006-05-16 14:51
2006.06.11
Вопрос по C++


15-1147336189
Marser
2006-05-11 12:29
2006.06.11
Могли бы Вы стать гуманитарием?


2-1148455315
С.Фролов
2006-05-24 11:21
2006.06.11
Delphi и W2k3 не работает Ctrl+Alt+F11