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/)
-   -   VCL Styles für bestimmte Komponenten ändern (https://www.delphipraxis.net/204777-vcl-styles-fuer-bestimmte-komponenten-aendern.html)

Cronen 28. Jun 2020 14:52

VCL Styles für bestimmte Komponenten ändern
 
In einer Anwendung setze ich einen VCL Style ein. Die grundsäztliche Anwendung von Styles ist mir klar
und auch das Ändern mit dem Bitmap Style Designer funktioniert.

Jetzt will ich aber für bestimmte Komponenten den Style mit dem Bitmap Style Designer ändern.
Wie finde ich denn raus, welches Object für welche Komponente genutzt wird?

Konkretes Problem:
1. Für eine Tab-Control will ich die Farbe des aktiven Tabs im Style ändern.
2. In der Toolbar möchte ich die Farbe der ToolButtons im focussierten Zustand ändern
(aber nicht bei den normalen TButtons)

Wilde Versuche einfach Bereiche im Style.png mit einer entsprechenden Frabe zu ändern haben nichts gebracht
bzw. andere Komponenten geändert. (Was natürlich zeigt, dass die Änderung so funktioniert)

Also die grundsätzliche Frage:
Wo ändere ich die Zuodnung Komponententyp > Style-Objekt bzw finde die heraus?

Oder übersehe ich wieder einfach was ganz triviales?

Gausi 29. Jun 2020 09:51

AW: VCL Styles für bestimmte Komponenten ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn du auf die Bitmap-Eigenschaft klickst, dann öffnet sich ein weiteres Fenster, in dem du den passenden Bereich im Gesamtbild auswählen, oder ggf. einen neuen Bereich definieren kannst.

Es kann auch sein, dass Buttons und Toolbuttons denselben Bereich nutzen. Dann müsstest du dir irgendwo eine freie Stelle im Gesamtbild suchen (oder das Bild vergrößern) und die Toolbutton-Grafik dahin legen.

Cronen 29. Jun 2020 16:50

AW: VCL Styles für bestimmte Komponenten ändern
 
@Gausi: ja, das hab ich auch so verstanden.

Ich versuch nochmal mein Problem anders zu beschreiben:

Ich habe in meiner Anwendung einen neue Klasse definiert, sagen wir
Code:
TMyButton = class(TButton);
und plaziere dann TMyButton und TButton nebeneinander auf einer Form.

Jetzt will ich dass TMyButton bei Verwendung eines VCL-Styles anders aussiet als TButton

Ich erzeuge im Bitmap-Stil-Designer also ein neues Object mit

- Objectvorlage hinzufügen -> Schaltfläche hinzufügen

und erhalte dann das neue Object "StyleObject1_Button". Da bearbeite ich jetzt den Eintrag "Face"
indem ich die verschiedenen Bitmaps in dem Style.png ändere.
Sinnvollerweise ändere ich noch "StyleObject1_Button" in "MyButton" und speichere die Style-Vorlage.

Soweit so gut.

Aber wie teile ich jetzt dem Form mit, dass es für alle TMyButtons den Stil "MyButton" verwenden soll und nicht "Button" wie für TButton?

Ich stelle mir irgendwie sowas in der Art vor:
Code:
TStyleManager.RegisterStylobject(TMyButton, 'MyButton');
oder so ähnlich.


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