Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Растягивание формы


Merl ©   (2005-04-22 22:31:00) 

Как можно растягивать форму за края, если ее стиль утсановлен как bsNone? То есть форма без заголовка.


easy   (2005-04-23 00:56:00) [1]

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs;
type
 TForm1 = class(TForm)
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
   procedure WMNCHitTest(var msg: TWMNCHitTest); message wm_NCHitTest;
 public
   { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.WMNCHitTest(var msg: TWMNCHitTest);
const
 Tolerance = 5;
var
 P: TPoint;
 OverRight: Boolean;
 OverLeft: Boolean;
 OverTop: Boolean;
 OverBottom: Boolean;
begin
 with Msg do
 begin
   P := ScreenToClient(Point(XPos, YPos));
   OverRight := Abs(P.x - Width) < Tolerance;
   OverLeft := Abs(P.x) < Tolerance;
   OverTop := Abs(P.y) < Tolerance;
   OverBottom := Abs(P.y - Height) < Tolerance;
 if OverRight then
   begin
     if OverTop then
       Result := HTTOPRIGHT
     else if OverBottom then
       Result := HTBOTTOMRIGHT
     else
       Result := HTRIGHT;
   end
   else if OverLeft then
   begin
     if OverTop then
       Result := HTTOPLEFT
     else if OverBottom then
       Result := HTBOTTOMLEFT
     else
       Result := HTLEFT;
   end
   else if OverTop then
     Result := HTTOP
   else if OverBottom then
     Result := HTBOTTOM
   else
     Result := HTCAPTION;
 end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  borderstyle:=bsNone;
end;
end.


Ученик   (2005-04-22 22:51:00) [2]

Фрагмент :-)

procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;

procedure TForm1.WMNCHitTest(var Message: TWMNCHitTest);
begin
 if Message.XPos < Left + 3 then
   Message.Result := HTLEFT
 else
   inherited
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо