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 :

Mettre à jour une image dans un style de listboxItem


Sujet :

Composants FMX Delphi

  1. #1
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut Mettre à jour une image dans un style de listboxItem
    Bonjour,

    Pour mettre mon problème en évidence, j'ai créé une form qui contient:
    - Une listbox
    - Un bouton
    - Une image
    - StyleBook1

    La propriété Stylebook de la form est assignée à StyleBook1.
    Dans Stylebook1 j'ai créé un style qui contient une image et un champ text.

    Lorsque je clique sur le bouton, je rajoute bien un élément dans la liste.
    Le texte du label est bien mis à jour (ici avec le texte 'Mon systeme')
    En revanche, je n'arrive pas à assigner une image à l'objet Timage de mon style ('iconsystem')

    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
     
    procedure TForm2.Button1Click(Sender: TObject);
    Var
      ListboxItem : TListboxItem; // dans fmx.listbox
      S1,S2 : string;
      AgeSec,pe,pv : integer;
      ItemImage : Timage;
    Begin
      ListboxItem := TListboxItem.Create(ListBox1);
      ListboxItem.Parent := ListBox1;
      ListboxItem.StyleLookup := 'Layout1Style';
      ListboxItem.Size.height := 65;
      ListboxItem.StylesData['systemname']  := 'Mon systeme';
      ItemImage :=  ListboxItem.FindStyleResource('iconsystem') as TImage;
      if assigned(ItemImage) then  ItemImage.bitmap.assign(Image1.Bitmap);
      ListBox1.addobject(ListBoxItem);
    End;
    Merci pour votre aide.

  2. #2
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Bonjour,

    Citation Envoyé par franckcl Voir le message
    La propriété Stylebook de la form est assignée à StyleBook1.
    En fait c'est ça qu'il faut annuler. Ne pas lier la propriété Stylebook de la form au Stylebook1 et ça devrait marcher.

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Ce genre de chose a beaucoup changé depuis XE4. A l'époque je trouvais ça galère et c'est pour cela que j'avais décidé de faire partager mon expérience via ce tutoriel et le source
    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
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Citation Envoyé par Thierry Laborde Voir le message
    Bonjour,
    En fait c'est ça qu'il faut annuler. Ne pas lier la propriété Stylebook de la form au Stylebook1 et ça devrait marcher.
    Je maitrise pas trop les styles, j'ai pas mal galéré avec (en XE5), mais je ne comprend pas comment tu peux retrouver ton style avec StyeLookUp sans que le stylebook soit retrouvable

  5. #5
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Citation Envoyé par guillemouze Voir le message
    Je maitrise pas trop les styles, j'ai pas mal galéré avec (en XE5), mais je ne comprend pas comment tu peux retrouver ton style avec StyeLookUp sans que le stylebook soit retrouvable
    La on parle de rattacher le stylebook au style de la form, ce qui n'est pas nécessaire vu que l'on a rattaché le style au stylelookup de la listbox.
    Et en l'occurence je viens de faire le test si je rattache le style à la Form il y a bien le problème. Par contre quand la form n'est pas rattaché au Stylebook cela fonctionne.
    Le lien se fait bien via le stylelookup de la listbox pas de la form

  6. #6
    Membre expérimenté Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Points : 1 448
    Points
    1 448
    Par défaut
    Citation Envoyé par Thierry Laborde Voir le message
    La on parle de rattacher le stylebook au style de la form, ce qui n'est pas nécessaire vu que l'on a rattaché le style au stylelookup de la listbox.
    le stylelookup ok, mais il lookup dans quoi ? il faut bien qu'il sache dans quel stylebook aller rechercher le style ayant ce nom ! A moins qu'il parcoure tous les stylebook disponibles sur la form pour les retrouver ?

  7. #7
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Citation Envoyé par guillemouze Voir le message
    A moins qu'il parcoure tous les stylebook disponibles sur la form pour les retrouver ?
    Exactement. En fait rattacher la form au stylebook ne sert principalement que lorsque ce stylebook va jouer sur le look de la Form.

  8. #8
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Je viens de faire un test supplémentaire et je me rends compte que si l'on fait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListboxItem.StylesData['iconsystem']  := Image1.Bitmap;
    au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ItemImage :=  ListboxItem.FindStyleResource('iconsystem') as TImage;
    if assigned(ItemImage) then  ItemImage.bitmap.assign(Image1.Bitmap);
    Cela fonctionne dans les 2 cas. Que la Form soit rattachée au Stylebook ou pas.
    Alors que ce n'étais pas le cas dans la solution initiale.
    Allez savoir pourquoi....

  9. #9
    Membre averti Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Points : 443
    Points
    443
    Par défaut
    Super ! merci Thierry ça marche nickel !

    Bonne continuation
    Franck

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

Discussions similaires

  1. [Débutant] Mettre à jour une table dans une base de données crée par code.(access)
    Par sidisadmir dans le forum ADO.NET
    Réponses: 1
    Dernier message: 31/08/2013, 09h54
  2. Mettre à jour une valeur dans le DOM
    Par aerosky dans le forum jQuery
    Réponses: 6
    Dernier message: 21/03/2013, 09h45
  3. [AC-2010] Mettre à jour une valeur dans une table
    Par POGaudet dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/11/2012, 20h47
  4. Mettre à jour une liaison dans une présentation
    Par pcastelin dans le forum VBA PowerPoint
    Réponses: 1
    Dernier message: 11/05/2010, 05h24
  5. [DOM] Mettre à jour une données dans un noeud
    Par eexit dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/08/2007, 14h23

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