Текущий архив: 2006.04.02;
Скачать: CL | DM;
ВнизВыделение области для перетаскивания формы. Найти похожие ветки
← →
Конопелька (2006-02-26 18:12) [0]Здравствуйте !
Подскажите: у меня есть форма имеющая свойство BorderStyle:="bsNone", мне нужно выделить определенную область на форме за которую можно будет перетаскивать ее, например выделить 10на10 пикселей в середине формы! Как это сделать !?????
Заранее спасибо !
← →
Leonid Troyanovsky © (2006-02-26 19:02) [1]
> Конопелька (26.02.06 18:12)
> ="bsNone", мне нужно выделить определенную область на форме
> за которую можно будет перетаскивать ее, например выделить
> 10на10 пикселей в середине формы! Как
Например, Rect (x-4, y-4, x+5, y+5),
где x, y - точка в середине, скажем, x = Width div 2; y = Height div 2.
--
Regards, LVT.
← →
Конопелька (2006-02-26 22:34) [2]Как задать точки и область я понимаю !!! А как зделать что бы за нее можно было перетащить приложение !!!???????
← →
Dmitrij_K (2006-02-26 22:51) [3]Это?
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const SC_DragMove = $F012; { a magic number }
begin
ReleaseCapture;
Form1.perform(WM_SysCommand, SC_DragMove, 0);
end;
www.drkb.ru musT have
← →
Конопелька (2006-02-26 22:58) [4]Спасибо это почти то что нужно ! Только мне нужно что бы форму можно было перетаскивать только за ту область которую мне нужно !
Например форма 500х400 пикселей а мне нужно что областью перетаскивания была область от 0х0 (x,y) пикселей до 50х50 ! Что бы только за этот уголок можно было перетянуть форму !
Заранее спасибо еще раз ! :)
← →
Конопелька (2006-02-26 23:00) [5]А еще вопрос такой ! Что дает комманда
ReleaseCapture;
? Обьясни если не трудно ! :)
← →
Dmitrij_K (2006-02-26 23:01) [6]Не проверял, но имхо так
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
const SC_DragMove = $F012; { a magic number }
begin
if (x in [0..50]) and (y in [0..50]) then
begin
ReleaseCapture;
Form1.perform(WM_SysCommand, SC_DragMove, 0);
end
end;
← →
Конопелька (2006-02-26 23:02) [7]Благодарю за помощь ! :)
← →
Dmitrij_K (2006-02-26 23:06) [8]
> Благодарю за помощь ! :)
НЗШТ, обращайся Ж)
← →
Eraser © (2006-02-26 23:20) [9]
> Конопелька (26.02.06 18:12)
Нужно обрабатывать сообщение WM_NCHITTEST окна, примерно так
procedure TMyForm.WMNCHitTest(var M: TWMNCHitTest);
begin
inherited;
if M.Result = htClient then
M.Result := htCaption;
end;
только в этом коде необходимо проверять, находится ли указатель мыши в нужной области окна.
см. справку по WM_NCHITTEST.
Страницы: 1 вся ветка
Текущий архив: 2006.04.02;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.044 c