![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ограничение границ при перетаскивании объекта [D6, WinXP]
Supreme © (2002-11-29 17:27:00)На событии OnMouseDown формы Form1 я пишу:
const
SC_DragMove = $F012;
{ a magic number }
begin
ReleaseCapture;
perform(WM_SysCommand, SC_DragMove, 0);
end;
А как мне сделать, чтобы нельзя было перемещать форму дальше чем её
позиция будет равна Form1.Left:=0 ???
Т.е. чтобы она перемещалась только вверх-вниз.
Supreme (2002-12-12 17:07:00) [1]Спасибо!
Skier (2002-12-11 10:33:00) [2]>Supreme
Ограничение на Left можно сделать примерно так :
(на остальные варианты додумай сам...)
type
TForm1 = class(TForm)
private
procedure WMMoving(var Message : TMessage); message WM_MOVING;
end; //TForm1
//.........
procedure TForm1.WMMoving(var Message: TMessage);
begin
with PRect(Message.LParam)^ do begin
if Left < 0 then begin
Right := Right - Left;
Left := 0;
inherited;
end //if
else inherited
end; //with
end;
не понял (2002-12-10 18:58:00) [3]А, типа просто в OnMouseUp формы не подойдет ?
if Left < 0
then Left:=0;
Supreme (2002-12-10 18:44:00) [4]Просто мне надо, чтобы форма двигалась только вверх-вниз по экрану, а за бока не заезжала (она по длине на весь экран).
Skier (2002-12-10 17:54:00) [5]>Supreme
IMHO, лучше обратиться к сообщениям
WM_MOVE и WM_MOVING
Supreme (2002-12-10 17:50:00) [6]Аууууу!!!
Supreme (2002-12-07 15:10:00) [7]Народ, вы где? Кто-нить может помочь? Если нет - так и скажите.
Supreme (2002-12-05 23:32:00) [8]Ну помогите пожалуйста, неужели так сложно?