IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

Changer de Style au runtime


Sujet :

Composants FMX Delphi

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 663
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 663
    Billets dans le blog
    65
    Par défaut Changer de Style au runtime
    Bonjour,

    j'ai recensé au moins 5 manières de changer de style à l'exécution (dans ce programme j'utilise Light.style et Dark.style)
    Nom : Capture.png
Affichages : 187
Taille : 24,3 Ko
    Si sous windows c'est opérationnel sous Android ça coince, les trois premières manières fonctionnent (encore qu'il faille se méfier de la casse en ce qui concerne les noms de fichiers et même de ressource!)
    mais dès qu'il s'agit de cloner le style

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    procedure TForm1.rbStyleManagerChange(Sender: TObject);
    begin
    if rbStyleManager.IsChecked then
     begin
      sassurerusestylemanageroff;
      var aStyleBook: TStyleBook := nil;
       aStyleBook:=TStyleBook(FindComponent(ComboBox1.Items[Combobox1.ItemIndex]));  // Light ou Dark
        if aStyleBook<>nil then
         begin
          // Clone le style
           {$IFDEF ANDROID}
                  // TStyleManager.SetStyle(astylebook.Style.Clone(nil));
                  TStyleManager.SetStyle(astylebook.Style);
           {$ELSE}
            TStyleManager.SetStyle(aStyleBook.Style.Clone(nil));
           {$ENDIF}
            inmemo('StyleManagerChange');
         end;
        TStyleManager.UpdateScenes;
     end;
    end;
     
    procedure TForm1.rbTstylebookUseManagerChange(Sender: TObject);
    begin
    if rbTstylebookUseManager.IsChecked then
     begin
      // TStyleManager.RemoveStyleFromGlobalPool(TStyleManager.ActiveStyle(nil));
     
       case combobox1.ItemIndex of
         1 : begin
               Light.UseStyleManager:=False;
               Dark.UseStyleManager:=True;
           {$IFDEF ANDROID}
             // TStyleManager.SetStyle(dark.Style.Clone(nil)); 
             TStyleManager.SetStyle(dark.Style);
           {$ELSE}
            TStyleManager.SetStyle(dark.Style.Clone(nil));
           {$ENDIF}
         end
         else begin
            Dark.UseStyleManager:=False;
            Light.UseStyleManager:=true;
           {$IFDEF ANDROID}
              TStyleManager.SetStyle(Light.Style.clone(nil));
           {$ELSE}
            TStyleManager.SetStyle(Light.Style.Clone(nil));
           {$ENDIF}
         end;
       end;
       inmemo('StyleBookUseManager');
       TStyleManager.UpdateScenes;
     end;
    end;

    sous Android, que ce soit Style.clone(self) ou style.clone(nil) c'est la douche froide
    Si je ne clone pas, alors cela fonctionne une fois mais pas deux
    Nom : Capture.png
Affichages : 185
Taille : 43,5 Ko
    enfin le mémo reste affiché mais le reste ne semble pas se redessiner.
    Après une semaine de galère, je me résouds donc à vous jeter un appel.

    Si quelqu'un veut s'essayer à l'ensemble (si en plus vous avez un mac et un iphone) je serais heureux d'avoir un retour donc je vous soumet les sources
    P.S. vous serez peut-être quand même obligé de changer les ressources
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 19/12/2022, 12h36
  2. [Windows] Changer de style au runtime
    Par SergioMaster dans le forum Composants FMX
    Réponses: 6
    Dernier message: 28/02/2020, 10h36
  3. Changer le style en JavaScript [besoin d'aide]
    Par maximenet dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 13/09/2005, 17h21
  4. Changer plusieur style avec des IDs différents?
    Par YanK dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/07/2005, 14h33
  5. Changer le style d'une cellule
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2005, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo