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 :

[Delphi12 / Android] Avoir une checkbox dans un TListview


Sujet :

Composants FMX Delphi

  1. #1
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    2 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 192
    Par défaut [Delphi12 / Android] Avoir une checkbox dans un TListview
    Bonjour,

    J'ai besoin de faire une check list (une liste de critères que l'utilisateur doit vérifier et indiquer si c'est OK) dans une app Android

    Mon approche: Utiliser une Tlistview avec pour chaque ListviewItem un checkbox et un libellé décrivant le critère à vérifier.

    Important: Le checkbox (coché ou non) doit être visible en permanence.


    J'ai lu le tutorial de l'excellent SergioMaster (https://www.developpez.net/forums/bl...nts-tlistview/) est une phrase me pose problème:

    Même l'apparence dynamique (DynamicAppearance) nous permettra d'ajouter un TGlyphButtonObjectAppearance, cependant cela s'avère un peu plus complexe et il ne faut pas oublier que ce dernier ne se verra qu'en mode édition.
    Jusqu'à maintenant, je n'ai utilisé les TListview que pour afficher des données (avec changement de la couleur de fond des items et action déclenchée sur clic d'un item) et je ne comprends pas très bien le fonctionnement du TListView en mode édition ou non.

    Dans mon cas, est-il nécessaire de mettre le TListview en mode édition quand il s'agit de cocher un item et de faire dans ce qui me semble être très compliqué? Ne serait-il pas plus simple de rendre visible ou non un glyphe quand l'utilisateur clique sur l'item?

    Merci d'avance pour votre avis

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 078
    Par défaut
    Quand ont voit TListBoxItemData.Accessory en aCheckmark, c'est bête qu'ils n'ont pas prévu la version Checked et Uncheked ... c'est pas la faute de Embarcadero puisque cela semble être des boutons différents selon l'OS

    Voir TAppearanceListViewItems.CheckedCount et TAppearanceListViewItem.Checked
    En EditMode pour activer les CheckBox, c'est natif des OS mobile, c'est l'ergonomie souhaitée par les concepteurs.

    L'exemple de SergioMaster permet de voir en permanence l'état coché ou non (image à choisir) et c'est le passage en EditMode que tu peux modifier la sélection, regarde bien autour de cette image :


    Nom : Screen-Shot-2014-07-09-at-17.28.16-159x300.png
Affichages : 54
Taille : 24,8 Ko
    SwiftUI Nom : swiftui-list-multiple-selection-intro.png
Affichages : 52
Taille : 15,0 Ko


    En Android faut regarder autour de ListView.CHOICE_MODE_MULTIPLE
    Nom : AndroidListViewMultiSelect-180x300.png
Affichages : 53
Taille : 18,0 Ko



    Je ne sais pas comment tu veux faire ton application mais la sélection multiple sur un mobile, c'est en mode édition de la liste (pas édition du texte des items), je ne trouve pas cela choquant que la case à cocher n'apparaissant que lors que l'utilisateur clic sur un bouton "sélectionner" généralement placé en haut de la liste
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 586
    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 586
    Billets dans le blog
    65
    Par défaut
    Je vous remercie pour ces compliments et explications de texte.

    Effectivement, comme l'explique ShaiLeTroll, mon exemple permet de me passer du mode Edition, bien sur pour avoir quelque chose d'approchant à une combobox il faut changer l'image

    Le checkbox (coché ou non) doit être visible en permanence.
    C'est pour cela que j'avais commencé (mais pas mis au propre) un composant Combobox pour FMX.
    Je devais en faire un tutoriel, mais, les choses s'enchaînant, il est resté au stade brouillon, pressé par le temps (il me fallait le composant) je n'ai pas pris la peine de noter mes différentes étapes donc difficile de rédiger la procédure ! Je l'ai écrit et utilisé, qui plus est, en lien avec des données (livebindings).

    Mais tu peux, je pense, régler ton problème en utilisant un tlistbox et non un tlistview, tout dépend du besoin. Cela posé, il faut quand même que je vérifie cette assertion en fonction du besoin
    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 extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2017
    Messages
    2 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2017
    Messages : 2 192
    Par défaut
    Mouais, c'est une usine à gaz!

    Après de nombreux essais, je n'arrive toujours pas à faire apparaître mes images indiquant que certains items ont été validés.

    Je n'ai malheureusement pas le temps de m'amuser à essayer de comprendre ce que les développeurs de Delphi avaient en tête et qu'ils se ont empressé de ne pas documenter!


    J'ai obtenu le même résultat avec un item texte: Un superbe V majuscule en couleur qui s'affiche dans l'item du TListview quand l'item est sélectionné.

    Merci pour l'aide

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

Discussions similaires

  1. Ajouter des Checkbox dans un TlistView
    Par ATTIA dans le forum Composants VCL
    Réponses: 10
    Dernier message: 01/10/2009, 18h41
  2. Réponses: 3
    Dernier message: 12/07/2006, 14h54
  3. Cocher une checkbox dans word a partir de vb6
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/07/2006, 10h53
  4. Récuperer valeurs d'une checkbox dans la base Mysql
    Par pod1978 dans le forum SQL Procédural
    Réponses: 13
    Dernier message: 10/03/2006, 14h29
  5. Utilisation d'une Checkbox dans ACCESS
    Par boblebob dans le forum Access
    Réponses: 17
    Dernier message: 16/11/2005, 12h31

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