Registriert seit: 8. Nov 2004
Ort: Ebhausen, BW
44 Beiträge
Delphi 2007 Architect
|
Re: Fenster Größe ändern ohne Border
23. Jul 2006, 18: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
|