Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.041 c
3-1139309659
WellSlava
2006-02-07 13:54
2006.04.02
сохранение отчета Fast Report в БД


4-1137105249
Alexx2000
2006-01-13 01:34
2006.04.02
Как на Winapi программно нарисовать иконку и получить ее в виде hicon


1-1141040367
serguar
2006-02-27 14:39
2006.04.02
отладка сервисов NT


2-1142708176
Fenix
2006-03-18 21:56
2006.04.02
Отображение иконок в TreeView.


2-1142574309
Мух
2006-03-17 08:45
2006.04.02
Вопрос про копирование БД