Einzelnen Beitrag anzeigen

Benutzerbild von patti
patti

Registriert seit: 20. Okt 2004
Ort: Mittelfranken
665 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Form die „BorderStyle := bsNone“ ist, in der Größe änder

  Alt 5. Okt 2007, 12:53
So gehts:

Delphi-Quellcode:
.
.
.
private
    { Private-Deklarationen }
    procedure NCHIT(var Msg : TWMNCHITTEST); message WM_NCHITTEST;
.
.
.
Und dann die eigentliche Prozedur:

Delphi-Quellcode:
procedure TForm1.NCHIT(var Msg : TWMNCHITTEST);
var p : Tpoint;
const a = 9;
var r,u : integer;
begin
     p.x := msg.XPos;
     p.y := msg.YPos;
     p := screentoclient(p);
     msg.Result := HTCLIENT;
     {-}
     r := self.width - a;
     u := self.height - a;
     {-}
     if p.x > r then msg.Result := HTRIGHT;
     if p.y > u then msg.Result := HTBOTTOM;
     if PtInRect(Rect(r,u,self.width,self.height),p) then msg.Result := HTBOTTOMRIGHT;
end;
Mit der Konstante a kann eingestellt werden, ab welchem Abstand des Cursors zum Rand vergrößert/verkleinert werden kann. In diesem Beispiel wird nur auf unten, rechts und die Ecke rechts-unten überprüft. Andere Seiten/Ecken gehen äquivalent. (ungetestet, sollte aber gehen)

P@Tti
Patrick Kreutzer
[Informatik-Student im 4. Semester]
http://www.patti-k.de/
  Mit Zitat antworten Zitat