Форум: "Начинающим";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
Вниззапрет на движение формы Найти похожие ветки
← →
Максим (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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.079 c