Delphi уроки - Запрещаем форме уезжать за пределы экрана

Опубиковано: 30.12.2008 г., автор: , просмотров: 27809

Delphi Уроки : Запрещаем форме уезжать за пределы экрана.

Простой пример того, как сделать так что бы фору нельзя было перетащить за пределы экрана. Делается это всего лишь при помощи одной процедуры. Итак, поехали:

Открываем Delphi, создаем новый проект, после ключевого слова public пишем:

procedure WMMoving(var Msg: TWMMoving); message WM_MOVING;

Далее нажимаем комбинацию клавиш CTRL+SHIFT+C

Delphi создаст шаблон для нашей процедуры. Я её уже дописал, поэтому посмотрите что получилось у меня и добавьте к себе в код недостающие строки:

procedure TForm1.WMMoving(var Msg: TWMMoving);
var
workArea: TRect;
begin
workArea := Screen.WorkareaRect;
with Msg.DragRect^ do
begin
if Left < workArea.Left then
OffsetRect(Msg.DragRect^, workArea.Left - Left, 0) ;
if Top < workArea.Top then
OffsetRect(Msg.DragRect^, 0, workArea.Top - Top) ;
if Right > workArea.Right then
OffsetRect(Msg.DragRect^, workArea.Right - Right, 0) ;
if Bottom > workArea.Bottom then
OffsetRect(Msg.DragRect^, 0, workArea.Bottom - Bottom) ;
end;
inherited;
end;

Вот и все ! Запустите программу и попробуйте перетащить форму за пределы экрана. Если не получиться то значит, вы всё сделали верно!

До встречи DelphiExpert.ru !!!



Похожие материалы

    Последние из рубрики

    This piece was cogen 06 Oct 2014 в 11:56 #
    This piece was cogent, weitlwrl-ten, and pithy.
    Николай 16 Sep 2014 в 16:28 #
    На свой же коммент отвечаю - вместо WorkareaRect надо вызвать DesktopRect
    Николай 16 Sep 2014 в 16:11 #
    А теперь запустите вашу прогу на компе с несколькими мониторами...
    Александр 22 Aug 2012 в 00:00 #
    скажите плиз как сделать курсор маркером.чтоб рисовать
    viktor 02 Apr 2012 в 00:00 #
    kak sdelat shtob knopka ne ueggala za predelu formu??? podskagute pls???

    ОтменитьДобавить комментарий