Einzelnen Beitrag anzeigen

Benutzerbild von Coder90
Coder90

Registriert seit: 8. Nov 2004
Ort: Ebhausen, BW
44 Beiträge
 
Delphi 2007 Architect
 
#5

Re: Fenster Größe ändern ohne Border

  Alt 23. Jul 2006, 17:10
Hi
Vielen Dank für den Code!
Wie schon gesagt funktionierte das diagonale Strecken nicht.

Hier der korrigierte Code mit allen 8 Streckrichtungen:
Delphi-Quellcode:
procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;

...

procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest);
begin
  DefaultHandler(Msg);
  with Msg do
      // TOPLEFT
    if PtInRect(Rect(0, 0, 4, 4), Point((XPos - Left), (YPos - Top))) then
      RESULT := htTopLeft
      // TOPRIGHT
    else if PtInRect(Rect((Width - 4), 0, Width, 4), Point((XPos - Left), (YPos - Top))) then
      RESULT := htTopRight
      // BOTTOMLEFT
    else if PtInRect(Rect(0, (Height - 4), 4, Height), Point((XPos - Left), (YPos - Top))) then
      RESULT := htBottomLeft
      // BOTTOMRIGHT
    else if PtInRect(Rect((Width - 4), (Height - 4), Width, Height), Point((XPos - Left), (YPos - Top))) then
      RESULT := htBottomRight
      // TOP
    else if PtInRect(Rect(0, 0, Width, 4), Point((XPos - Left), (YPos - Top))) then
      RESULT := htTop
      // LEFT
    else if PtInRect(Rect(0, 0, 4, Height), Point((XPos - Left), (YPos - Top))) then
      RESULT := htLeft
      // BOTTOM
    else if PtInRect(Rect(0, Height - 4, Width, Height), Point((XPos - Left), (YPos - Top))) then
      RESULT := htBottom
      // RIGHT
    else if PtInRect(Rect((Width - 4), 0, Width, Height), Point((XPos - Left), (YPos - Top))) then
      RESULT := htRight
      // Bewegen ohne Titlebar
    {else if RESULT = HTCLIENT then
      RESULT := htCaption}

    else
      inherited;
end;
Danke nochmal!

MfG, Coder90
  Mit Zitat antworten Zitat