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 :

Accès à un élément de style d'une TLisbox


Sujet :

Composants FMX Delphi

  1. #1
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut Accès à un élément de style d'une TLisbox
    Bonjour

    J'ai créer un élément de style pour une TListbox en mettant un TCircle et un TLabel dans un TLayout.

    Lors du remplissage de ma liste j'accède facilement au TLabel, mais je n'arrive pas à trouver le moyen de changer la couleur de remplissage de mon Tcircle.

    Voici ce que j'ai essayé comme code mais qui produit une erreur de Transtypage de classe incorrect
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    item:=TLisBoxItem.Create(nil);
    item.parent:=malistbox;
    item.StyleLookup:='mon_style';
    item.StylesData['mon_texte']:='texte du label';
    crcl:=TFMXObject(item.StylesData['mon_cercle'].AsObject);
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  2. #2
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    Je m'auto répond car j'ai retrouvé un équivalent dans un vieux code et ça donne ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    FMXObject := Item.FindStyleResource('mon_cercle');
      if (FMXObject <> nil) and (FMXObject is TCircle) then
      begin
        TCircle(FMXObject).Fill.Color:=ma_coul;
      end;
    Ceci dit je me demande si il n'y a pas une autre méthode que de passer par FindStyleRessource
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    je ne suis plus très ListBox mais à ma souvenance tu cherches quelque chose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     item.StylesData['mon_cercle.fill.color']:=ma_coul
    [Edit]
    bon je confirme avec ce petit exemple
    Nom : Capture.PNG
Affichages : 398
Taille : 6,1 Ko

    pas encore Alsheimer mais un peu rouillé niveau 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
     
    procedure TFormPrincipale.Button3Click(Sender: TObject);
    var
      I: Integer;
      aItem : TListBoxItem;
    begin
    listbox1.BeginUpdate;
    for I := 1 to 10 do
     begin
       aItem:=TlistBoxItem.Create(ListBox1);
       aItem.Parent:=ListBox1;
       aItem.StyleLookup:='myitemstyle';
       aItem.ApplyStyleLookup;
       aItem.StylesData['mycircle.fill.color']:=TAlphaColors.Alpha OR Cardinal(Random($FFFFFF));
       aItem.StylesData['mylabel.text']:='Hello '+inttostr(i);
     end;
    listbox1.EndUpdate;
    end;
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Juste un truc, je fais exprès de découper.
    J'ai voulu jouer aussi avec la couleur du texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aItem.StylesData['mylabel.textsettings.fontcolor']:=aColor;
    mais ça, ça ne fonctionne pas sans modifier aItem.StylesData['mylabel.StyledSettings'] pour enlever StyledSetting.Color mais je ne sais pas comment le faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aItem.StylesData['mylabel.StyledSettings']:= ??
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Pour info, si je n'ai pas pu coder ce aItem.StylesData['mylabel.StyledSettings'], il est tout à fait possible d'indiquer dans le style créé que le label ne prend pas la couleur du style (StyleSettings.FontColor = false).
    Coder ceci est donc possible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    aItem.StylesData['mytext.textsettings.fontcolor']:=aColor;
    mon style

    Nom : Capture.PNG
Affichages : 358
Taille : 24,8 Ko

    Dans ce dernier vous remarquez aussi que j'ai mis le Titre en gras, pour ce faire j'ai fait quasiment la même manipulation à savoir :
    - Modifier StyleSettings cette fois c'est la propriété Style que j'ai décoché
    - Modifier ensuite TextSettings.Font.Style pour ajouter Bold
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    C'est effectivement ce que j'ai fait.
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

Discussions similaires

  1. Accès simultanés : bloquer la lecture d'une table
    Par rohstev dans le forum Access
    Réponses: 12
    Dernier message: 01/02/2008, 21h04
  2. Des "=" qui se mettent tout seuls dans une TLisBox
    Par [Silk] dans le forum Langage
    Réponses: 2
    Dernier message: 11/11/2005, 13h35
  3. Réponses: 5
    Dernier message: 23/07/2005, 00h40
  4. Changer le style d'une cellule
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2005, 17h18
  5. Style d'une ligne d'un tableau et Checkbox
    Par echecetmat dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/01/2005, 16h03

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