Thema: Delphi VCL Skins aus Datei

Einzelnen Beitrag anzeigen

Satyr

Registriert seit: 8. Feb 2012
Ort: Essen
305 Beiträge
 
Delphi 10.4 Sydney
 
#1

VCL Skins aus Datei

  Alt 7. Feb 2023, 15:28
Ich hoffe ich bin im richtigen Unterforum. Wenn nicht, bitte verschieben.

Ich experimentiere momentan ein wenig mit VCL Styles.
Ich möchte sie während das Programm läuft, wechseln können.

Ich habe eine ListBox auf meinem Formular und lade dort die Dateien im Style Ordner rein.
Klappt problemlos. Beim klick auf eine Stildatei, möchte ich das der Skin geladen und gesetzt wird.

Hier mein Quellcode dazu:

Delphi-Quellcode:
procedure TForm1.StyleBoxClick(Sender: TObject);
var
   stylename: string;
begin

stylename := LeftStr(StyleBox.Items[StyleBox.ItemIndex], Length(StyleBox.Items[StyleBox.ItemIndex])- 4);
ShowMessage(StyleName);

  if TStyleManager.IsValidStyle('C:\Users\Public\Documents\Embarcadero\Studio\21.0\Styles\'+StyleName+'.vsf')
  then begin
     TStyleManager.LoadFromFile('C:\Users\Public\Documents\Embarcadero\Studio\21.0\Styles\'+StyleName+'.vsf');
     ShowMessage('Ist ok');
     TStyleManager.SetStyle(StyleName);
  end;

end;
Das funktioniert. Teilweise.

Es funktioniert wenn die Styles einen kurzen Namen haben. "Auric", "AllPorts" oder sowas.
Wird geladen und gesetzt, also das Design entsprechend geändert.

Allerdings nicht wenn der Name des Styles (bzw. der Syle Datei) länger ist. "AquaGraphite", "Windows10BlackPerl" oder so. Da kommt die Fehlermeldung das der Stil nicht gefunden wurde. Was nicht sein kann, dann wäre er nicht in der ListBox.

Lasse ich den Stil von Delphi unter Projekt->Optionen->Erscheinungsbild ändern, funktioniert es. Der Skin wird also nicht kaputt sein, schätze ich.

Das alles verwirrt mich sehr...
  Mit Zitat antworten Zitat