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 :

ListBox et deux styles d'éléments (Item)


Sujet :

Composants FMX Delphi

Vue hybride

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 ListBox et deux styles d'éléments (Item)
    Bonjour,

    Mettez ça sur le fait de mon nouvel état de retraité, à moins que ce soit un bogue de Delphi 12, je n'en suis pas sûr

    je tente de faire une liste avec 2 styles donc un TListbox lié par livebindings et le code suivant
    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
    procedure TFormStocks.LienLstCasiersFillingListItem(Sender: TObject;
      const AEditor: IBindListEditorItem);
    var aItem : TListBoxItem;
    begin
      AItem:=TListBoxItem(AEditor.CurrentObject);
      case fdqCasierstypeitem.AsInteger of
        1,2,3 : begin
                  aItem.StyleLookup := 'groupcasier';
     //             aItem.ApplyStyleLookup;
                  aItem.StylesData['btnremplir.tag']:=fdqCasiersTypeitem.AsInteger;
                  aItem.StylesData['btnremplir.onclick']:=TValue.From<TNotifyEvent>(remplirgroupe);
                  aItem.OnPainting:=ListBoxItem1Painting;
                end;
        else begin
                  aItem.StyleLookup := 'choixcasier';
    //              aItem.ApplyStyleLookup;
                  aItem.StylesData['capacite']:=Format('Capacité : %d',[fdqCasierscapacite.asInteger]);
                  aItem.StylesData['btnremplir.tag']:=fdqCasiersTypeitem.AsInteger;
                  aItem.StylesData['btnremplir.onclick']:=TValue.From<TNotifyEvent>(remplirgroupe);
                  aItem.OnPainting:=ListBoxItem1Painting;
        end;
      end;
    end;
    cela semble fonctionner comme ci-dessous
    Nom : Capture.PNG
Affichages : 179
Taille : 55,1 Ko
    seulement si je défile dans la liste et que je reviens au début, j'obtiens
    Nom : Capture_1.PNG
Affichages : 168
Taille : 47,0 Ko
    Bref, je perds en partie mes styles

    J'ai déjà été confronté à cette chose, mais je ne me souviens plus comment résoudre ça

  2. #2
    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
    J'ai résolu mon problème de la façon suivante, plutôt que de nommer mon stylename : text je l'ai changé en texte.
    Nom : Capture.PNG
Affichages : 163
Taille : 27,4 Ko
    Comment en suis-je arrivé à cette solution ? J'avais remarqué que les autres, ou plutôt l'autre Tlabel, ne changeait pas, d'où mon idée de changer le nom du stylename (à ne pas confondre avec stylelookup)

    Bien sûr, cela m'a obligé à changer un peu 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
    procedure TFormStocks.LienLstCasiersFillingListItem(Sender: TObject;
      const AEditor: IBindListEditorItem);
    var aItem : TListBoxItem;
    begin
      AItem:=TListBoxItem(AEditor.CurrentObject);
      case fdqCasierstypeitem.AsInteger of
        1,2,3 : begin
                  aItem.StyleLookup := 'groupcasier';
                  aItem.StylesData['texte']:=fdqcasiersNom.AsString;
                  aItem.StylesData['btnremplir.tag']:=fdqCasiersTypeitem.AsInteger;
                  aItem.StylesData['btnremplir.onclick']:=TValue.From<TNotifyEvent>(remplirgroupe);
                end;
        else begin
                  aItem.StyleLookup := 'choixcasier';
                  aItem.StylesData['texte']:=fdqcasiersNom.AsString;
                  aItem.StylesData['capacite']:=Format('Capacité : %d',[fdqCasierscapacite.asInteger]);
                  aItem.StylesData['btnremplir.tag']:=fdqCasiersTypeitem.AsInteger;
                  aItem.StylesData['btnremplir.onclick']:=TValue.From<TNotifyEvent>(remplirgroupe);
        end;
      end;
    end;
    j'ai quand même gardé la liaison
    Nom : Capture.PNG
Affichages : 153
Taille : 6,5 Ko
    ce qui me permet de faire la recherche via le TSearchbox que j'ai préalablement créé ainsi, et ce sans code pour ce qui concerne ensuite la recherche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    uses FMX.SearchBox;
    ...
    procedure TFormStocks.FormCreate(Sender: TObject);
    var asearch : TSearchBox;
    begin
     asearch:=TSearchbox.Create(lstCasiers);
     aSearch.Height:=lstCasiers.ItemHeight;
     aSearch.Font.Size:=24;
     aSearch.StyledSettings:=aSearch.StyledSettings-[TStyledSetting.Size];
     lstCasiers.AddObject(asearch);
    end;
    Nom : Capture.PNG
Affichages : 155
Taille : 53,7 Ko

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

Discussions similaires

  1. [listbox] Changer la police d'un item
    Par BouB dans le forum Windows Forms
    Réponses: 4
    Dernier message: 08/02/2007, 23h01
  2. Renseigner un ListBox sur deux colonnes
    Par spouli dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/02/2007, 22h05
  3. deux styles différents
    Par edogawa dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 27/09/2006, 00h00
  4. Appliquer deux styles a un element
    Par fofovi72 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 08/02/2006, 21h32
  5. [vb.net][listbox]probleme avec la déselection d'item
    Par graphicsxp dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/01/2006, 15h10

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