Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kontrolle über die Titelleiste eines Fensters (https://www.delphipraxis.net/213281-kontrolle-ueber-die-titelleiste-eines-fensters.html)

mwilms 1. Jul 2023 10:45

Kontrolle über die Titelleiste eines Fensters
 
Hallo,

weiß jemand, wie man am besten die Kontrolle über die Oberfläche eines Fensters bekommt (Inklusive Titelleiste). Gesucht wird nach einem Canvas.Bereich, der alle Elemente des Fensters abdeckt.

Vielen Dank

mWilms

jaenicke 1. Jul 2023 11:38

AW: Kontrolle über die Titelleiste eines Fensters
 
Die Komponente heißt TTitleBarPanel und die Eigenschaft des Formulars CustomTitleBar. Falls das Fenster ein TMainMenu besitzt, muss das entfernt werden.

Das funktioniert so, dass der Nonclient-Bereich entfernt wird und man nur noch einen Client-Bereich hat. Den kann man dann selbst aus der Anwendung heraus gestalten.

himitsu 1. Jul 2023 12:38

AW: Kontrolle über die Titelleiste eines Fensters
 
Man kann sich zwar auch ins Zeichnen des NonClientBereiches reinhängen,
aber im Prinzip ist es mit dieser Komponente einfahcer. (die IDE nutzt das auch, siehe die ComboBoxen da oben rechts)

Nur ein paar Dinge sollte Emba verbessen, denn um die Ausrichtung mußt du dich selber kümmern und es gibt nichts, wo dir dise Komponente sagt, an welcher Stelle z.B. die SystemButtons enden.

mwilms 1. Jul 2023 15:34

AW: Kontrolle über die Titelleiste eines Fensters
 
Ok,

habe die Komponente und CustomTitleBar Eigenschaft gefunden. Kann ich nun die Titlebar entfernen und so den Clientbereich erweitern?

VG

mwilms

himitsu 1. Jul 2023 16:05

AW: Kontrolle über die Titelleiste eines Fensters
 
Diese Komponente ist anfänglich etwas grauenhaft kontraintuitiv zu benutzen. :wall:

* erstmal das TTitleBarPanel auf die Form
* dann bei der Form unter CustomTitleBar.Control diese Komponente zuweisen
** * nicht erschrecken, denn plötzlich ist diese Komponente verschwunden (0 Pixel groß)
* nicht vergessen CustomTitleBar.Enabled auf True zu setzen
* sonst denkst du die ganze Zeit dieser Schrott funktioniere garnicht und bist kurz vorm Aufgeben :lol:

k.A. warum niemand auf eine geniale Idee kam-
* einfach jenes Zuweisen und Enable automatisch setzen, wenn man diese Komponente auf die Form pappt. :freak:

Und nicht wundern ... VCL-Styles kannst du vergessen, denn dann geht auch nichts mehr.



Ja, im Prinzip steht es in der Hilfe.
Das Emba-Werbevideo zu dieser Komponente weißt aber auch nicht wirklich darauf hin.

Ich sehe auch nicht, wie sie das "Menü" da drauf bekommen haben, denn TMainMenu kann/darf man auch nicht benutzen.

https://docwiki.embarcadero.com/RADS..._for_VCL_Forms
https://www.youtube.com/watch?v=tCcqu_emZlk
https://www.youtube.com/watch?v=eIt6VPNjfwk





Außerdem wird Form.StyleElements.seBorder abgeschaltet
und wenn man das TTitleBar löscht, dann bleibt Enalbed aktiv und Jenes deaktiviert.

Auch CustomTitleBar.Enabled zu aktivieren, wenn kein TTitleBar zugewiesen wurde, ergibt merkwürdige Auswirkungen.

Sowie wenn seBorder abgeschatet ist, funktioniert das vergrößern der Form nicht mehr richtig.
Einfach mal machen und im Designer das versuchen. :freak:

TigerLilly 2. Jul 2023 15:43

AW: Kontrolle über die Titelleiste eines Fensters
 
Gibt es aber nur mit VCL, nicht FMX, oder?

bnreimer42 2. Jul 2023 16:09

AW: Kontrolle über die Titelleiste eines Fensters
 
Zitat:

Zitat von TigerLilly (Beitrag 1524078)
Gibt es aber nur mit VCL, nicht FMX, oder?

Ja, nur für VCL.

himitsu 2. Jul 2023 18:44

AW: Kontrolle über die Titelleiste eines Fensters
 
Da es im iOS sowas nicht gibt, wurde es da auch nicht eingebaut. :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 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