Bonjour,

Avant de ma lancer dans un gros opus sur les styles FMX j'ai voulu revoir un peu ce qui était proposé en VCL.

Rédigeant de moins en moins de programmes VCL j'en était resté à une sélection d'une apparence au niveau du projet et basta.

J'ai donc voulu aller un peu plus loin et ajouté quelques apparences afin de modifier à l'exécution.
Jusque là, pas de souci flagrant quoique je sois tombé dans un piège, en indiquant dans les options de projet "style par défaut = windows" rien ne fonctionnait

Nom : Capture.PNG
Affichages : 575
Taille : 34,7 Ko

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
uses VCL.Themes;
 
procedure TForm22.Button1Click(Sender: TObject);
begin
   TStyleManager.TrySetStyle('Tablet Dark',true);
   Edit1.SetFocus;
end;
 
procedure TForm22.Button2Click(Sender: TObject);
begin
  TStyleManager.TrySetStyle('Tablet Light',true);
  Edit1.SetFocus;
end;
 
procedure TForm22.FormCreate(Sender: TObject);
begin
  TStyleManager.TrySetStyle('windows',true);
end;
j'ai ensuite modifié les propriétés stylename des deux premiers boutons, histoire de corser la chose (après tout c'est une nouveauté de la 10.4)

Nom : Capture_2.PNG
Affichages : 526
Taille : 36,5 Ko

je n'obtiens donc pas le résultat voulu ou du moins pas complètement

en changeant le code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses VCL.Themes;
 
procedure TForm22.Button1Click(Sender: TObject);
begin
   TStyleManager.TrySetStyle('Tablet Dark',true);
   Edit1.Text:='Tablet Dark';
   button2.StyleName:='Tablet Light';
   Edit1.SetFocus;
end;
 
procedure TForm22.Button2Click(Sender: TObject);
begin
  Edit1.text:='Tablet Light';
  TStyleManager.TrySetStyle('Tablet Light',true);
  button1.StyleName:='Tablet Dark';
  Edit1.SetFocus;
end;
 
procedure TForm22.FormCreate(Sender: TObject);
begin
  TStyleManager.TrySetStyle('windows',true);
//   button1.StyleName:='Tablet Dark'; // pas d'effet
//   button2.StyleName:='Tablet Light'; // pas d'effet
end;
et j'ai obtenu, semble t-il, le résultat souhaité

Nom : Capture_1.PNG
Affichages : 524
Taille : 15,2 Ko

Toutefois, je doute que ce soit la bonne démarche, quelqu'un a t-il déjà fait des essais sur le sujet ?