Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Forms und dergleichen selbst zeichnen? (https://www.delphipraxis.net/161494-forms-und-dergleichen-selbst-zeichnen.html)

Memnarch 6. Jul 2011 08:39


Forms und dergleichen selbst zeichnen?
 
Tag allerseits.

Was mich mal interressieren würde: Wenn ich eine Form selbst zeichnen möchte(also den rahmen etc), wie sollte ich am besten vorgehen? Da ich andere teile des Programs nicht ändernmöchte bzw bereits existierende forms so zeichnen soll wie ich es möchte, wäre ich dafür schonmal so verfahren, dass ich von TForm eine ableitung mache und die als letztes ins uses packe, sodass meine TForm declaration überal genutzt wird.

Aber wie weiter?

Borderless form und darauf zeichnen?(hier bliebe das problem dass ich mich auch im den Clientbereich kümmern müsste (width/height))



MFG
Memnarch

Memnarch 13. Jul 2011 08:29

AW: Forms und dergleichen selbst zeichnen?
 
Also ich habe es inzwischen geschafft den Rahmen selbst zu zeichnen. Bleiben nur ein paar sachen:

1: Wie komm ich an die Buttons oben rechts(minimize, close, etc). Oder soll ich die einfach entfernen und meine eigenen hinsetzen?

2: Wie komm ich an die Größe des TMainMenu? Hab im moment die höhe Hardcoded(durch probieren rausgefunden). Aber das gilt halt nur für mein system. Andere können andere ausmaße haben.

MFG
Memnarch

EWeiss 13. Jul 2011 09:41

AW: Forms und dergleichen selbst zeichnen?
 
Dein Menu Handle
GetWindowRect(MenuHandle)
Anschließend den OffsetRect setzen und diesen festhalten zur späteren verwendung.

ah jo Handle bekommst über GetMenu(handle deiner Anwendung(Fenster))

gruss

Memnarch 13. Jul 2011 09:59

AW: Forms und dergleichen selbst zeichnen?
 
Ah super, danke :).

Jetzt muss ich nurnoch an die Buttons(Maximize, minimize, close) rankommen.


MFG
Memnarch

EWeiss 13. Jul 2011 11:04

AW: Forms und dergleichen selbst zeichnen?
 
Zitat:

Zitat von Memnarch (Beitrag 1111445)
Ah super, danke :).

Jetzt muss ich nurnoch an die Buttons(Maximize, minimize, close) rankommen.


MFG
Memnarch

Die sind fixed..
Aber achte darauf was für einen Windowstyle du verwendest.
Bei einem WS_EX_TOOLWINDOW sind sie nur 11x11 du mußt also vorher den jeweiligen Fensterstyle prüfen.

zusätzlich.. bei WS_EX_TOOLWINDOW hast du keine Minimizebox/Maximizebox.

usw..

PS:
Die XPosition kannst du über GetSystemMetrics(SM_CXSIZE) in erfahrung bringen.

Ach so vergessen..
Unter Vista/Win7 funktioniert das nicht mehr da mußt du dich schon der UXTheme bedienen.
GetThemeMetric unter verwendung von WP_CLOSEBUTTON (Bsp. für CloseButton)

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz