Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Вниз

Перетаскивать форму за клиентскую часть в KOL ?   Найти похожие ветки 

 
yar   (2002-11-07 14:40) [0]

У кого есть пример рабочего сабжа ?
Мои ухищрения с OnMessage не помогают ;(


 
Gandalf   (2002-11-07 16:05) [1]


> У кого есть пример рабочего сабжа ?
> Мои ухищрения с OnMessage не помогают ;(

Плохо хитрил ;)

function TForm1.KOLForm1Message(var Msg: tagMSG;
var Rslt: Integer): Boolean;
begin
result := false;
case msg.message of
WM_NCHITTEST:
begin
Rslt:=HTCAPTION;
Result:=True;
end;
end; //case
end;


 
yar   (2002-11-07 16:18) [2]

> Плохо хитрил ;)
наверное ;)

Это было первое, что я написал ...
А ты видел, что при этом получается ?
Форма перетаскивается, если тянуть за нее, а если тянуть за контролы на форме, то они начинают по ней ползать ...
И при этом не работает ни одна кнопка, в том числе и кнопки на caption - не работают тоже ...

другие мысли есть ?


 
Gandalf   (2002-11-07 16:33) [3]

Вообще то вопрос к КОЛ никакого отношения не имеет, тебе в WinAPI.


> Форма перетаскивается, если тянуть за нее, а если тянуть
> за контролы на форме, то они начинают по ней ползать ...


if msg.hwnd=Form.Handle then
begin
Rslt:=HTCAPTION;
Result:=True;
end;



> ... в том числе и кнопки
> на caption - не работают тоже ...


Rslt:=DefWindowProc(msg.hwnd,msg.message,msg.wParam,msg.lParam);
if (Rslt<>HTZOOM) and (Rslt<>HTREDUCE) and (Rslt<>HTCLOSE) then
begin
Rslt:=HTCAPTION;
Result:=True;
end;




 
yar   (2002-11-07 17:13) [4]

> Вообще то вопрос к КОЛ никакого отношения не имеет, тебе в
> WinAPI
поправка принята ...

в целом, уже спасибо.

Но раз уж зашел такой разговор, то как заставить форму перемещаться, если тянут не за форму, а за компонент на ней ?
например, TMemo, TLabel etc ?
Я вижу, что подобная задача уже тобой решалась, так может поделишься ? Можно и самому нарыть, но это время - а его как раз и нет ...


 
Gandalf   (2002-11-07 18:00) [5]


> > Вообще то вопрос к КОЛ никакого отношения не имеет, тебе
> в
> > WinAPI
> поправка принята ...

Для дальнейшего обсуждения либо мыль, либо иди в WinAPI - там встетимся (а может и нет, там и так мастеров хватает).


> в целом, уже спасибо.

Да незачто.


> Но раз уж зашел такой разговор, то как заставить форму перемещаться,
> если тянут не за форму, а за компонент на ней ?
> например, TMemo, TLabel etc ?

Вот например если хочешь за Memo1 таскать, ставишь у него:

function TForm1.Memo1Message(var Msg: tagMSG; var Rslt: Integer): Boolean;
begin
result := false;

case msg.message of
WM_NCHITTEST:
begin
Rslt:=HTTRANSPARENT;
Result:=True;
end;
end;
end;


 
yar   (2002-11-07 18:13) [6]

Собственно уже все ...
Спасибо


 
alex_s   (2002-11-07 23:34) [7]


> yar (07.11.02 18:13)
> Собственно уже все ...
> Спасибо


На всякий случай, на будущее:

if (Msg.Msg = WM_LBUTTONDOWN) then begin
releasecapture;
Form.Perform(WM_SYSCOMMAND, $F012, 0);
end;

Вставляется в соответствующий контрол или в код формы,
тогда таскать можно будеть за все, кроме пространства перекрытого другими контролами. Можно это вставить в
событие мыши. А WM_NCHITTEST не работает в клиентской
части окна.




Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.015 c
1-44655
Evg12
2003-07-02 02:22
2003.07.14
Вопрос по MessageDlg, на который вы легко ответите.


3-44553
Balu
2003-06-19 19:17
2003.07.14
Помогите разобраться с кодировкой


1-44756
ЮРИЙ_К
2003-06-30 10:42
2003.07.14
Вставить картинку в DrawGrid??


1-44684
oleg_SYS
2003-06-28 21:46
2003.07.14
Как БЫСТРО проверить, чист ли Canvas?


3-44569
RNZ
2003-06-20 12:06
2003.07.14
Как упаковать базу mdb (Microsoft Access Database) ?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский