|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.03.2007, 15:19 | #1 |
Форумчанин
Регистрация: 16.11.2006
Сообщений: 175
|
а первый взгляд просто..
У меня вдруг возникла вот такая ситуация: надо короче в процедуре OnMouseMove узнать когда будет отпущена левая кнопка хвостатой причем на скрине. Ну типа чтобы форму можно было перетаскивать, зацепив в любом месте.Только дело в том, что формы от формы не осталось (она вся перекрыта компонентами).Я написал так:
Код:
чайник юзеру не товарищ, а сам себе враг...
Последний раз редактировалось Аlex; 24.03.2007 в 15:22. |
24.03.2007, 18:22 | #2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
удали єтот код
вот лучшее рещение Код:
|
25.03.2007, 21:20 | #3 |
Форумчанин
Регистрация: 16.11.2006
Сообщений: 175
|
!!! Интересно только как оно работает
чайник юзеру не товарищ, а сам себе враг...
|
02.04.2007, 17:57 | #4 |
Heavy metal
Пользователь
Регистрация: 02.04.2007
Сообщений: 42
|
А ещё лучше (и проще) перехватывать сообщение WM_NCHITTEST и в нужных местах возвращать HTCAPTION. Всё остальное винда сделает сама.
|
02.04.2007, 20:29 | #5 |
Студент
Форумчанин
Регистрация: 10.11.2006
Сообщений: 196
|
var
OldLeft,OldTop: integer; Dragging: boolean; procedure TForm1.FormCreate(Sender: TObject); begin Dragging:=false; end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if (button=mbLeft)and(x>3)and(x<130)an d(y>2)and(y<20) then begin Dragging:=true; OldLeft:=X; OldTop:=Y; end; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if Dragging then begin Left:=Left+X-OldLeft; Top:=Top+Y-OldTop; end; end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Dragging:=false; end; <- Помню форму я перетаскивал так. (когда нацеплял на нее свой "регион")
Visita Interiorem Terrae Rectificando Operae Lapidem...
|
03.04.2007, 11:05 | #6 |
Heavy metal
Пользователь
Регистрация: 02.04.2007
Сообщений: 42
|
^^^ Я точно так же делал, пока не узнал про NCHITTEST. Зачем мучиться, если всё уже предусмотрено. Вот так:
Код:
|
04.04.2007, 12:40 | #7 |
Форумчанин
Регистрация: 16.11.2006
Сообщений: 175
|
Есть некоторое неудобство при ее использовании например с нажатием кнопок могут возникнуть проблемы и контекстное меню будет как у заголовка. Мне например больше нравиться предыдущий способ (он кстати и намного короче)
чайник юзеру не товарищ, а сам себе враг...
|
05.04.2007, 18:34 | #8 |
Heavy metal
Пользователь
Регистрация: 02.04.2007
Сообщений: 42
|
Ну не знаю, я никаких проблем не замечал. А контекстное меню, кстати, не будет там появляться.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мой первый макрос | valerij | Microsoft Office Excel | 102 | 19.11.2008 10:45 |
MsSQL - первый раз установил майкрософт SQL | vados | SQL, базы данных | 16 | 19.07.2008 20:01 |
Первый баг (фото) | mutabor | Свободное общение | 1 | 06.05.2008 11:51 |
Вроде на первый взгляд всЁ просто...... | Solny6ko YasnoE | Помощь студентам | 4 | 17.09.2007 08:23 |