Главная страница
    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.46 MB
Время: 0.044 c
15-1142145294
Kerk
2006-03-12 09:34
2006.04.02
Ребяты, устроим консилиум


3-1139178894
GL00m
2006-02-06 01:34
2006.04.02
Подключить бы БД Access в рантайме в User DSN...


15-1141771742
GanibalLector
2006-03-08 01:49
2006.04.02
Разработки в 100 и более человеко-лет


11-1123526991
mixis
2005-08-08 22:49
2006.04.02
Борюсь с подменю - заменить и удалить


1-1141139914
Cybernik
2006-02-28 18:18
2006.04.02
Не стартует тред в вынь98. В XP всё нормально.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский