Форум: "Основная";
Текущий архив: 2002.09.05;
Скачать: [xml.tar.bz2];
ВнизКак изменить размер формы если ее BorderStyle= bsNone Найти похожие ветки
← →
kofman (2002-08-24 00:11) [0]Здравствуйте Мастера. Вот такая задача. Есть форма BorderStyle которой установлен в bsNone. На форме лежит TImage выравненный по клиенской части формы. Вопрос такой, как в run-time потянув за край имэйджа изменить размер формы?
← →
Almaz (2002-08-24 03:10) [1]Вам следует обрабатывать сообщение WM_NCHITTEST - оно отвечает за то, как система обработает нажатие кнопки мыши на форме. Просто "заставьте" систему видеть рамку окна. В приведенном ниже примере форма имеет BorderStyle = bsNone, однако правый край формы ведет себя как будто там есть рамка:
type
TForm1 = class(TForm)
private
procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
...
end;
...
procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
var
Pt: TPoint;
begin
inherited;
with Message do
begin
Pt := ScreenToClient(Point(XPos, YPos));
// 4 - толщина "рамки"
if Pt.x > Width - 4 then Message.Result := HTRIGHT;
...
end;
end;
Возвращая значения HTLEFT, HTBOTTOMRIGHT и т.д. можно имитировать рамку с любой стороны или угла окна.
Удачи.
← →
anod (2002-08-24 12:56) [2]А если программа на ВинАпи
По-моему я не правильно возвращаю значение, потому что ничего не происходит.
WM_NCHitTest: begin
Pt := Mouse.CursorPos;
if (Pt.x > plWidth - 4)and(Pt.y > plHeight - 4) then Result := LongBool(HTBOTTOMRIGHT);
end;
← →
Diamond Cat (2002-08-24 20:14) [3]можно использовать setwindowpos
← →
anod (2002-08-24 22:51) [4]ТОЛЬКО КАК?
← →
Almaz (2002-08-27 02:01) [5]
> anod © (24.08.02 12:56)
> А если программа на ВинАпи
>
> По-моему я не правильно возвращаю значение, потому что ничего
> не происходит.
По-моему вы не правильно вычисляете условие - Mouse.CursorPos вернет вам позицию мышм в координатах экрана, а вам нужно в координатах окна. Т.е. вам следует вычесть из значений Mouse.CursorPos координаты левого верхнего угла окна.
p.s. Если вы пишите на WinAPI, то что в программе делает объект TMouse ?
Удачи.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.09.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c