![]() |
Fenstergröße an eigenem Rahmen ändern...
Hallo!
Ich habe den eigentlichen Rahmen eines Forms ausgeblendet (Form1.Borderstyle := bsNone;) und durch einen selbst gezeichneten ersetzt. Dazu habe ich TImages an die Fensterränder gesetzt und mit den entsprechenden Rahmen-Bilder ausgesatattet. Soweit alles kein Problem. Da das Fenster nun aber keine Rahmen mehr hat, kann ich es nicht mehr größer oder kleiner ziehen. Wie kann ich diese Eigenschaft nachbilden? Besten Dank Ares |
Re: Fenstergröße an eigenem Rahmen ändern...
vor einiger zeit hab ich die frage auch mal gestellt und hab folgendes erhalten:
Delphi-Quellcode:
procedure WMNCHitTest(var Msg: TWMNCHitTest); message WM_NCHITTEST;
[...] procedure TSBMainForm.WMNCHitTest(var Msg: TWMNCHitTest); 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 - 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 // Bewegen ohne Titlebar //else if RESULT = HTCLIENT then // RESULT := htCaption else inherited; end; |
Re: Fenstergröße an eigenem Rahmen ändern...
Danke für den Tipp! Aber wie genau muss ich das Einbinden? Ich hab das ganze einfach in Quelltex eingefügt, danach funktioniert das jedoch noch nicht. Muss ich sonst noch was machen?
Besten Dank Ares |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz