При изменении размеров окна без заголовка сначала отрисовывается рамка будущих размеровDelphi , Программа и Интерфейс , Размеры и ПоложениеПри изменении размеров окна без заголовка сначала отрисовывается рамка будущих размеров
Автор: i-s-v Вот пример для правого нижнего угла окна, в котором расположен Image1 (или еще что-нибудь) ... const MinHeight = 200; MinWidth = 200; //Минимальная ширина и высота формы. При желании можна и впихнуть максимальную var isResizing: boolean = false; oldPos: TPoint; WRect: TRect; ... procedure TfrmMain.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin isResizing := true; oldPos := Mouse.CursorPos; GetWindowRect(Handle, WRect); //получаем прямоугольник окна DrawFocusRect(GetDC(0), WRect); //АПИ функция, рисующая рамку end; procedure TfrmMain.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var dx, dy: integer; begin if isResizing then begin DrawFocusRect(GetDC(0), WRect); //стираем предыдущую рамку dx := Mouse.CursorPos.X - oldPos.X; dy := Mouse.CursorPos.Y - oldPos.Y; if (WRect.Right - WRect.Left + dx > MinWidth) and (WRect.Right + dx < Screen.Width) then WRect.Right := WRect.Right + dx; if (WRect.Bottom - WRect.Top + dy > MinHeight) and (WRect.Bottom + dy < Screen.Height) then WRect.Bottom := WRect.Bottom + dy; end; oldPos := Mouse.CursorPos; DrawFocusRect(GetDC(0), WRect); end; end; procedure TfrmMain.Image1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if isResizing then begin DrawFocusRect(GetDC(0), WRect); BoundsRect := WRect; end; isResizing := false; end; Статья При изменении размеров окна без заголовка сначала отрисовывается рамка будущих размеров раздела Программа и Интерфейс Размеры и Положение может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Размеры и Положение ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |