Главная страница
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.047 c
2-1142618474
Fenix
2006-03-17 21:01
2006.04.02
Траблы с типами...


1-1141025414
SnapIn
2006-02-27 10:30
2006.04.02
Вопрос тем, кто реализовывал проекты с подвязкой ГИС MapInfo


2-1142593667
Fenix
2006-03-17 14:07
2006.04.02
Разбиение рисунка на части.


3-1139560059
Jappak
2006-02-10 11:27
2006.04.02
Как пеперать содержание ДБГрид на dbf таблицу?


15-1141892364
jeka_t
2006-03-09 11:19
2006.04.02
Где-то можно получить похожий компонент TDBGridEh?