Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.17;
Скачать: CL | DM;

Вниз

запрет на движение формы   Найти похожие ветки 

 
Максим   (2008-01-24 19:40) [0]

Можно ли как-нибудь запретить перемещение формы за пределы экрана.
Т.е. двигаю форму и как только край хочет перевалить за экран,то не пускать ее, будто там стенка :)


 
antonn ©   (2008-01-24 19:53) [1]

TMainForm = class(TForm)
protected
   procedure WMWINDOWPOSCHANGING(var Msg: TWMWINDOWPOSCHANGING);
   message WM_WINDOWPOSCHANGING;

procedure TMainForm.WMWINDOWPOSCHANGING(var Msg: TWMWINDOWPOSCHANGING);
var
 rWorkArea: TRect;
 StickAt : Word;
 Docked: Boolean;
begin
 StickAt := 20;
 SystemParametersInfo(SPI_GETWORKAREA, 0, @rWorkArea, 0);


 with Msg.WindowPos^ do  begin

     if ((x <= rWorkArea.left + StickAt)and (x > - StickAt)) then

       x := rWorkArea.left;
     


     if ((x+cx-16>=rWorkArea.Right-StickAt)and( x+cx<=rWorkArea.Right+StickAt))   then
       x := rWorkArea.Right - cx;
       

     if (y<=rWorkArea.Top + StickAt)and (y>-StickAt) then
       y := rWorkArea.Top;
     

 
     if (y+cy>=rWorkArea.Bottom-StickAt)and(y+cy<=rWorkArea.Bottom+StickAt) then
       y := rWorkArea.Bottom - cy;

    //x и y - координаты положения формы
 end;

 inherited;
end;


 
Максим   (2008-01-24 20:21) [2]

это для того чтобы окно прилипало к краям, а мне нужно запретить двигать за края


 
Максим   (2008-01-24 20:24) [3]

воткнул уже:)
    if x< rWorkArea.left then
     x :=rWorkArea.left;



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

Текущий архив: 2008.02.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
15-1200298824
alexeis
2008-01-14 11:20
2008.02.17
не соответствие клавиш в DOSe


2-1201103401
smartleds
2008-01-23 18:50
2008.02.17
Народ , подскажите как мне Track Bar правильно на форме разместит


2-1201454536
AntonUSAnoV
2008-01-27 20:22
2008.02.17
как быть с разрешением монитора ?


15-1200473403
barakuda
2008-01-16 11:50
2008.02.17
Орешник


2-1201165220
Guriev
2008-01-24 12:00
2008.02.17
Как сделать. чтобы ComboBox-ы заполнились и "зафиксировались"?