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 VCL Delphi Discussion :

ListView, petit cas d'école


Sujet :

Composants VCL 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 619
    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 619
    Billets dans le blog
    65
    Par défaut ListView, petit cas d'école
    Bonjour,

    Il est rare que je vienne refaire des trucs en VCL, et encore plus rare que j'utilise des TListView en VCL (je ne sais même plus vraiment comment les remplir "à la main").
    Toujours est-il que je voulais faire une comparaison entre les TListView VCL et FMX et sur cette particularité que sont les groupes.
    L'image valant un long discours, vous allez rapidement voir les points qui me "choquent"
    Nom : Capture.PNG
Affichages : 276
Taille : 60,4 Ko

    @Nabil74 Je savais que c'était possible de faire une jolie liste avec des groupes

    le programme est "no code" tout se fait via Livebindings pour le remplissage,
    Nom : Capture.PNG
Affichages : 239
Taille : 11,3 Ko

    si ce n'est pour cacher/montrer les intitulés de colonnes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    procedure TForm73.btnGroupeClick(Sender: TObject);
    var i : Integer;
    begin
    lvBioLife.ShowColumnHeaders:=not lvBioLife.ShowColumnHeaders;
    // en extra, rendre les groupes "pliants", ça c'est la cerise sur le gâteau  
    for i:=0 to lvBioLife.Groups.Count-1 do
       lvBioLife.Groups[i].State:=lvBioLife.Groups[i].State + [lgsCollapsible]
    end;
    Note : pour la troisième image, scroller tout en bas puis remonter efface l'espace disgracieux

    Des idées pour éviter le désagrément ?
    Question subsidiaire, serait-il possible de rendre le groupe pliant sans passer par la boucle après remplissage, soit, donc, en cours de remplissage quand le groupe se crée ? J'y répondrai certainement un peu plus tard, mais s'il y a des idées je prends

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 619
    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 619
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Des idées pour éviter le désagrément ?
    Pour ce point, j'ai mis la propriété DoubleBuffered de la liste à True
    et encadré lvBioLife.ShowColumnHeaders:=not lvBioLife.ShowColumnHeaders; de lvBioLife.Items.BeginUpdate; lvBioLife.Items.EndUpdate;ce n'est pas encore parfait car le premier clic produit encore un scintillement désagréable dû au passage en mode pliant des groupes, il faut donc trouver réponse à ma question subsidiaire

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 619
    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 619
    Billets dans le blog
    65
    Par défaut
    Bonjour,
    Citation Envoyé par SergioMaster Voir le message
    il faut donc trouver réponse à ma question subsidiaire... J'y répondrai certainement un peu plus tard,
    Après un petit tour sur l'oreiller, voici comment je m'en sors. Toute l'astuce est de savoir comment la liste se remplie via les LiveBindings, c'est-à-dire via le lien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm73.LinkListControlToField1FillingListItem(Sender: TObject;
      const AEditor: IBindListEditorItem);
    var nbg : integer;
    begin
    nbg:=lvBioLife.Groups.Count;
    if (nbg>0)
       AND NOT (lgsCollapsible in lvBioLife.Groups[nbg-1].State)
    then lvBioLife.Groups[nbg-1].State:=lvBioLife.Groups[nbg-1].State + [lgsCollapsible];
    end;
    en PJ, le projet un peu plus complet
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    Citation Envoyé par SergioMaster Voir le message

    @Nabil74 Je savais que c'était possible de faire une jolie liste avec des groupes
    Bonsoir Sergio,
    Eh oui, tu me l'as dit que c'était possible et nous avons sous les yeux une jolie démonstration.
    Bravo!!!

Discussions similaires

  1. IO entrée sortie cas d'école [débutant]
    Par crazykangourou dans le forum Langage
    Réponses: 3
    Dernier message: 13/03/2007, 14h24
  2. cas d'école - exclusion mutuelle
    Par zais_ethael dans le forum C
    Réponses: 5
    Dernier message: 01/12/2006, 08h14
  3. Sous requête et performance. Un cas d'école ?
    Par asaintleger dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/11/2006, 11h04
  4. [Tableaux] Retout chariot: cas d'école.
    Par cybertj dans le forum Langage
    Réponses: 14
    Dernier message: 11/10/2006, 00h06

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