Текущий архив: 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.45 MB
Время: 0.011 c