(Moderator)
Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
Delphi 2006 Professional
|
Re: bsNone Form verschieben und Größe ändern
25. Mär 2007, 12:38
die Lösung mit den Images ist sehr unschön. Denn genau dafür gibt es die Message WM_NCHITTEST. Wenn man diese behandelt kann man bestimmen ob und wo das größe ändern und verschieben möglich sein soll.
Delphi-Quellcode:
begin
DefaultHandler(Msg);
with Msg do
// TOP
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
// TOPLEFT
else 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 - 30), 30, Height), Point((XPos - Left), (YPos - Top))) then
RESULT := htBottomLeft
// BOTTOMRIGHT
else if PtInRect(Rect((Width - 30), (Height - 30), Width, Height), Point((XPos - Left), (YPos - Top))) then
RESULT := htBottomRight
// Bewegen ohne Titlebar
//else if RESULT = HTCLIENT then
// RESULT := htCaption
else
inherited;
end;
Jens Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
|