Hi zusammen
Wennich schon beim austesten bin, dann kann ich auch mal die Sachenn um TStylemanager ausprobieren - dachte ich mir und hab dann zur Designtime ein Style eingebunden. Damit sieht dann meine Projektunit so aus:
Delphi-Quellcode:
program SQLiteTestProject;
uses
Vcl.Forms,
SQLiteTestMainUnit
in '
SQLiteTestMainUnit.pas'
{SQLiteTestMain},
DMLSQLiteUnit
in '
DMLSQLiteUnit.pas'
{DMLSQLite: TDataModule},
PathFinderFrameUnit
in '
PathFinderFrameUnit.pas'
{PathFinderFrame: TFrame},
Vcl.Themes,
Vcl.Styles,
ModifyBitClass
in '
ModifyBitClass.pas';
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
TStyleManager.TrySetStyle('
Golden Graphite');
Application.CreateForm(TSQLiteTestMain, SQLiteTestMain);
Application.Run;
end.
Und da vermeinte ich doch den Fehler gleich zu sehen: unter uses sind
Vcl.Themes und
Vcl.Styles aufgeführt. Ich hingegen hatte in meiner
Unit nur gerade eine der beiden eingebunden...(**)
So verpasste ich der Mainform eine Combobox, über die einer der verfügbaren Styles ausgewählt werden kann/soll:
Delphi-Quellcode:
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
...
Vcl.Buttons,
Vcl.Samples.Spin,
Vcl.Menus,
Vcl.Themes,
Vcl.Styles;
//** Wie ich schon angedeutet habe, war hier erstmal nur VCL.Themes aufgeführt; das Hinzufügen von VCL.Styles hat jedoch nichts geändert
procedure TSQLiteTestMain.CmbxStylesCloseUp(Sender: TObject);
begin
CmbxStyles.Items.AddStrings(TStylesManager);
end;
Bei ersten Tests ist mal alles themenbezogene hier in dieser Prozedur. Ausgelagert kann, soweit sinnvoll, immer noch werden (ZB die Combo bei Programmstart füllen).
Das Problem ist: TStyleManager ist hier unbekannt, auch wenn ich unter Uses beide Units aufführe.
TStyleManager ist als 'sealed' deklariert (Embarcadero.DelhiXE8), es kann also keine Instanz erstellt werden.
Beispielcodes zur Verwendung von TStyleManager habe ich keinen gefunden.
Was läuft da schief?
Gruss
Delbor