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

Вниз

Ограничение области перемещения контрола в рантайме   Найти похожие ветки 

 
KilkennyCat ©   (2010-07-27 14:17) [0]

Таскаю панель:
procedure TForm1.phintMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 ReleaseCapture;
 SendMessage(phint.Handle, WM_SYSCOMMAND, $F012, 0);
end;


а здесь устанавливаю границу таскания:

procedure TForm.phintConstrainedResize(Sender: TObject; var MinWidth,
 MinHeight, MaxWidth, MaxHeight: Integer);
var
 xy : TPoint;
begin
 GetCursorPos(xy);
 if xy.x <= 100 then SetCursorPos(100, xy.Y);
end;


упираться-то упирается, но дрожит неприятно. Можно ли как-либо реализовать типа с CanMouseMove? Т.е. с пре- а не постпроверкой.


 
Юрий Зотов ©   (2010-07-27 15:32) [1]

Может, использовать ClipCursor?


 
Игорь Шевченко ©   (2010-07-27 15:45) [2]

WM_WINDOWPOSCHANGING ?


 
0x00FF00 ©   (2010-07-27 16:54) [3]


> WM_WINDOWPOSCHANGING

+1.
Как альтернативу, можно обрабатывать WM_SIZE.


 
0x00FF00 ©   (2010-07-27 16:55) [4]


> WM_SIZE

Тьфу.
WM_SIZING.
http://msdn.microsoft.com/en-us/library/ms632647(VS.85).aspx


 
DVM ©   (2010-07-27 17:29) [5]

скорее уж WM_MOVING


 
KilkennyCat ©   (2010-07-27 18:07) [6]

Спасибо, сейчас все попробую.


 
mahab ©   (2010-07-27 22:42) [7]

Имхо.Мне однажды приходилось таскать рамку. Я приспособил TShape и таскал не саму рамку а так называемый фокус (canvas.DrawFocusRect). Очень удачно вышло.


 
KilkennyCat ©   (2010-07-28 13:46) [8]


> mahab ©   (27.07.10 22:42) [7]

это проще. я делал что-то типа графредактора, когда сам рисуешь - можно творить что угодно без проблем.

WM_WINDOWPOSCHANGING - помогло.  Я еще не разобрался, но флаг запрета перемещения унес все панели на форме неизвестно куда :) Забавная штука.



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

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

Наверх





Память: 0.46 MB
Время: 0.003 c
6-1227962984
dmitry_12_08_73
2008-11-29 15:49
2010.10.24
Выбор способа передачи данных с помощью протокола HTTP


15-1279623412
12
2010-07-20 14:56
2010.10.24
ORACLE. ORA-03115, что опять не так? С именами? или как?


3-1246622240
amir
2009-07-03 15:57
2010.10.24
ширина колонок в DBGrid


2-1280475856
Scot Storch
2010-07-30 11:44
2010.10.24
Проверка синтаксиса команды


2-1280385376
azamatufa
2010-07-29 10:36
2010.10.24
Прошу прощения, создать RUN-time Paradox7





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