![]() |
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. |
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 |
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) |
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 |
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". |
AW: VCL Styles : ignoriert Schiftart
Ein konkretes Testbeispiel wäre hier eventuell hilfreich.
|
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 |
AW: VCL Styles : ignoriert Schiftart
Moin Moin.
Also nichts Neues? VCL Styles sind also Mummpitz? creehawk |
AW: VCL Styles : ignoriert Schiftart
Bitte wie oben vorgeschlagen einfach mal hinterher debuggen und deine Erkenntnisse teilen.
|
AW: VCL Styles : ignoriert Schiftart
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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