Delphi-PRAXiS
Seite 1 von 2  1 2      

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 : ignoriert Schiftart (https://www.delphipraxis.net/201955-vcl-styles-ignoriert-schiftart.html)

creehawk 13. Sep 2019 09:32

VCL Styles : ignoriert Schiftart
 
Moin.

Ein neue VCL Anwendung.
Projekt>Optionen>Erscheinungsbild>Sky
Feuer frei. Alles okay.
Tools>Bitmap-Stil-Designer
Laden :.....Embarcadero.../Redist/vcl/Sky.vsf
per Menü: Stil > Schriftname zuweisen > SegoeUI 9 Punkte
mal unter Fonts nachsehen: alles paletti, die Beispielbuttons werden mit der neuen Schriftart angezeigt.
Im Inspektor Name ändern auf Style
Speichern unter: Style.vsf
F9 drücken. Shit.
Keine Änderung zu erkennen. Hm. Einfach Mal für Fonts>MenuItemTextNormal die Schriftfarbe ändern von Schwarz nach Grün.
Speichern.
F9 Drücken. Fast Okay, hübsches Grün, falsche Schriftart.

Was ist verkehrt? Oder zeigt das Beispiel im Bitmap-Stil-Designer die neue Schriftart nicht an?

creehawk

P.S. Diesen Style habe ich in eine andere VCL Anwendung eingebunden (Quelltext : TStyleManager.SetStyle(TStyleManager.LoadFromFile( 'Style.vsf'));), die geänderte Farbe wird richtig ausgegeben, NICHT jedoch die Schriftart.

creehawk 16. Sep 2019 09:24

AW: VCL Styles : ignoriert Schiftart
 
Moin.

Mittlerweile habe ich ohne Ende rumgegoogelt und letztlich nichts dazu gefunden. Oder nur seitenlange Programme um das irgendwie möglich zu machen. Und ergänzend dazu nur noch die Info das die Dialogboxen die eventuell benutzt werden sowieso nicht den Style benutzen. Warum und wieso wird auch erklärt, ist ja auch schön und gut. Und ein wirklich Handfestes Tutorial für die Verwendung von VCL Styles finde ich auch nicht.

Ich frage mich jetzt also wozu man die Styles ausser für bunte Schalterchen verwenden kann.

creehawk

TiGü 16. Sep 2019 14:15

AW: VCL Styles : ignoriert Schiftart
 
Hast du denn mal tiefer debuggt?
Also an welcher Stelle deine Schriftart noch definiert ist und ab wann sie vom Standard überschrieben wird?

Code:
Winapi.Windows.DrawText(1845586787,'Button1',7,(0, 0, 75, 25, (0, 0), (75, 25)),1024)
Vcl.Styles.DrawText($167DD80,'Button1',(0, 0, 75, 25, (0, 0), (75, 25)),1024)
Vcl.Styles.TSeCustomStyle.DrawStyleText($167DD80,((0, 0, 75, 25, (0, 0), (75, 25)), 'Button1', ktxaMiddleCenter, [], ktxoHorizontal))
Vcl.Styles.TSeStyle.ButtonDrawText(kbscButton,$167DD80,((0, 0, 75, 25, (0, 0), (75, 25)), kbdsHot),((0, 0, 75, 25, (0, 0), (75, 25)), 'Button1', ktxaMiddleCenter, [], ktxoHorizontal),'default')
Vcl.Styles.TCustomStyle.InternalDrawText(???,(teButton, 1, 1),'Button1',(0, 0, 75, 25, (0, 0), (75, 25)),[tfCenter,tfLeft,tfTop,tfVerticalCenter],0)
Vcl.Styles.TCustomStyle.DoDrawText(1845586787,(teButton, 1, 1),'Button1',(0, 0, 75, 25, (0, 0), (75, 25)),[tfCenter,tfLeft,tfTop,tfVerticalCenter],([stfTextColor], 0, 5265845, 1845586787, 2, (23253728, -241), 5265664))
Vcl.Themes.TCustomStyleServices.DrawText(1845586787,(teButton, 1, 1),'Button1',(0, 0, 75, 25, (0, 0), (75, 25)),[tfCenter,tfLeft,tfTop,tfVerticalCenter],0)
Vcl.Themes.TStyleHook.DrawControlText($162D2E0,(teButton, 1, 1),'Button1',(0, 0, 75, 25, (0, 0), (75, 25)),5)
Vcl.StdCtrls.TButtonStyleHook.DrawButton($162D2E0,True)
Vcl.StdCtrls.TButtonStyleHook.Paint(???)
Vcl.Themes.TStyleHook.WMPaint(???)
Vcl.Themes.TStyleHook.WndProc((15, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Themes.TMouseTrackControlStyleHook.WndProc(???)
Vcl.StdCtrls.TButtonStyleHook.WndProc((15, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Themes.TStyleHook.HandleMessage((15, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Styles.TStyleEngine.HandleMessage($15B0A30,(15, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()),(Vcl.StdCtrls.TButtonControl.WndProc,$15B0A30))
Vcl.Themes.TStyleManager.HandleMessage($15B0A30,(15, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()),(Vcl.StdCtrls.TButtonControl.WndProc,$15B0A30))
Vcl.Controls.TWinControl.DoHandleStyleMessage(???)
Vcl.Controls.TWinControl.WndProc((15, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.StdCtrls.TButtonControl.WndProc((15, 0, 0, 0, 0, 0, (), 0, 0, (), 0, 0, ()))
Vcl.Controls.TWinControl.MainWndProc(???)
System.Classes.StdWndProc(466542,15,0,0)

creehawk 17. Sep 2019 06:59

AW: VCL Styles : ignoriert Schiftart
 
Moin Moin.

Nein, habe ich nicht.

Denn genau an der Stelle werde ich sauer. Ich habe hier 3 Rechner (Win 10 Home, Win 10 Prof., Delphi Starter Community Edition, Delphi 10 Prof.) Auf allen habe ich die oben beschriebene Aktion ausgeführt. Auf allen passiert das Gleiche - nix.

Ich hatte die Verwendung von VCL Styles/FMX Styles als planmäßige Vereinfachung zur optischen Gestaltung der Bedienoberfläche angesehen, die eine Programmierumgebung anbietet. Offensichtlich läuft das aber nicht oder eben nur mit einigen Rumgefummel, das dem Vereinfachungsgedanken eindeutig entgegensteht. Das die eine oder andere Komponente mal mangels Anpassung nicht mit einem Style zusammenarbeitet kann ich noch verknusen. Das an den Dialogboxen rumgefummelt werden muss da WIN spezifisch - okay. Aber solche lapidaren Dinge wie Buttons oder Listboxen aus dem Standardrepertoire?
Die VCL Styles Utils (Rodrigo Ruz) habe ich mit besorgt nach dem Motto: Da hast du Dödel wohl irgendwas übersehen. Aber: auch das Tool zeigt auf allen Rechnern die Schriftarten nicht an. Farbänderungen, die Formbeschriftung usw. schon, aber alles läuft auf die Standardschriftart hinaus.

Vielleicht mache ich ja auch grundlegend etwas falsch. Oder ich vergesse etwas weil ich es nicht weiß.

So jedenfalls ist die Abteilung VCL Styles für mich noch Mummpitz. Ich lasse mich gerne eines besseren belehren.

creehawk

TiGü 17. Sep 2019 08:12

AW: VCL Styles : ignoriert Schiftart
 
Vermutung: Die Schriftart, die im Objektinspektor für die visuelle Komponente eingetragen ist, überschreibt die Schriftart aus dem Style und "gewinnt".
Ich vermute, dass ist sogar "as designed".

Uwe Raabe 17. Sep 2019 08:55

AW: VCL Styles : ignoriert Schiftart
 
Ein konkretes Testbeispiel wäre hier eventuell hilfreich.

creehawk 17. Sep 2019 14:08

AW: VCL Styles : ignoriert Schiftart
 
Moin Moin.

Beispiel? Hae ich doch oben schon - grob - angegeben.

Aber es geht auch kürzer.

Bitmap-Stil-Designer starten.
Den Stil <Sky> laden.
Über den Menübefehl <Stil> <Schriftname zuweisen> eine Schrift auswählen, zur Abschreckung <Comic Sans MS>.
Speichern.
Mit <F9> Stil testen.
Die Formname wird hübsch in der gewählten Schriftart angezeigt. Sonst aber nix.
In der Liste der Objekte des Bitmap-Stil-Designers ist die Schriftart überall eingestellt und wird dort auch angezeigt.

Und wenn ich nun eine normale VCL Anwendung erstelle, Button + Listbox + Label auf die Form setze, in den Projekt Optionen>Erscheinungsbild >Sky< auswähle und als Standard festlege passiert - auch nix. Die Formüberschrift ist Comic Sans, sonst nichts.

creehawk

creehawk 19. Sep 2019 09:54

AW: VCL Styles : ignoriert Schiftart
 
Moin Moin.

Also nichts Neues? VCL Styles sind also Mummpitz?

creehawk

TiGü 19. Sep 2019 10:00

AW: VCL Styles : ignoriert Schiftart
 
Bitte wie oben vorgeschlagen einfach mal hinterher debuggen und deine Erkenntnisse teilen.

Uwe Raabe 19. Sep 2019 10:01

AW: VCL Styles : ignoriert Schiftart
 
Zitat:

Zitat von creehawk (Beitrag 1447049)
Also nichts Neues? VCL Styles sind also Mummpitz?

Würde ich so nicht sagen. Ich setze VCL Styles bei mehreren Kunden erfolgreich ein, bei denen es in der Regel um Corporate Identity geht. Ein Problem wie du es beschreibst ist dort offenbar noch nicht aufgetaucht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 Uhr.
Seite 1 von 2  1 2      

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