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 :

Equivalent de (l'ancien) Tlistview


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut Equivalent de (l'ancien) Tlistview
    bonjour
    j'aimerais afficher des donnés dans une sorte de tableau à plusieurs colonnes
    sous delphi 7 j'utilisais le Tlistview, en mode vreport
    on dirait que le Tlistview fonctionne différemment sous firemonkey ? je n'ai pas réussi à trouver le même mode que sous delphi 7 et lors d'un essaie (avec une seule colonne) il y a une flèche au bout de chaque item, comme pour dire qu'en cliquant, un détail pourrait s'afficher
    une idée svp ?

  2. #2
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Le TListView de FMX est calqué sur le fonctionnement des listes sur les OS mobiles.

    Il est entièrement personnalisable (même si c'est un peu complexe selon ce qu'on veut faire).

    Si tu as juste besoin d'un tableau c'est le TGrid ou TStringGrid qu'il faut utiliser.

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 593
    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 593
    Billets dans le blog
    65
    Par défaut
    J'en ai pourtant écrit pas mal sur les ListView entre les billets sur mon blog (utiliser la recherche par tag listview)
    et les tutoriels (4) articles
    Il n'y a pas quelques trucs que j'ai pu trouver sur les headers mais eux aussi sont légèrement personnalisables

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    bonjour,

    veuillez excuser mon absence
    en fait avec D7 j'avais l'habitude des Tlistview, pratique et présentable, j'aimerais donc continuer avec firemonkey

    pour illustrer mon besoin, j'aimerais les afficher ainsi : https://softwareonastring.com/179/ho...ues-in-columns

    merci

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    Citation Envoyé par pprem Voir le message
    Le TListView de FMX est calqué sur le fonctionnement des listes sur les OS mobiles.

    Il est entièrement personnalisable (même si c'est un peu complexe selon ce qu'on veut faire).

    Si tu as juste besoin d'un tableau c'est le TGrid ou TStringGrid qu'il faut utiliser.
    pour apporter plus de précisions, j'aimerais afficher une liste mais sur plusieurs colonnes
    nom / prénom / profession / date de naissance
    en sélectionnant une ligne on devrait avoir la possibilité de récupérer ce qu'on veut profession par ex, ou date de naissance par ex

    j'ai regardé si on pouvait bidouiller un Tlistbox, mais le soucis c'est que chaque item est séparé (même si on met en colone)

  6. #6
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Citation Envoyé par Coussati Voir le message
    pour apporter plus de précisions, j'aimerais afficher une liste mais sur plusieurs colonnes
    Chez moi on appelle ça une grille.

    La TListView de FireMonkey est personnalisable. On peut mettre des infos en plusieurs cellules, mais c'est pas l'idéal ou faut coder des trucs. Pour le clic c'est la ligne complète, pas les éléments indépendants.

    Autant prendre un truc fait pour afficher des lignes de données en colonnes ou passer par un TFrame dans un TVertScrollBox.

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 593
    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 593
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par pprem Voir le message
    La TListView de FireMonkey est personnalisable. On peut mettre des infos en plusieurs cellules, mais c'est pas l'idéal ou faut coder des trucs. Pour le clic c'est la ligne complète, pas les éléments indépendants.
    Oh, là, on peut quand même faire beaucoup de choses sans coder (merci l'apparence dynamique) et si le clic c'est la ligne complète le OnItemClickEx permet de faire "son choix"

    ou passer par un TFrame dans un TVertScrollBox.
    ce qui revient à ma solution style , mais en moins brise-nerfs niveau éditeur de style

    je ne voulais pas être en reste avec le remplissage aussi ai-je "rapidement" fait ceci
    Nom : Capture.PNG
Affichages : 627
Taille : 5,7 Ko
    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
    24
    25
    26
    27
    procedure TForm2.Button1Click(Sender: TObject);
    var aItem : TListBoxItem;
         hItem : TListBoxHeader;
    begin
    Listbox1.BeginUpdate;
    //  vider liste 
     ListBox1.Clear;
    // todo : ajouter header si n'existe pas (le clear n'efface pas le Header !)  et modifier titre des colonnes
    // if  ? then begin 
    Hitem:=TlistBoxHeader.Create(ListBox1);
    Hitem.Parent:=Listbox1;
    Hitem.StyleLookup:='ListBox1Header';
    Hitem.ApplyStyleLookup;
    Hitem.StylesData['BtnCol1']:='Contact';
    Hitem.StylesData['BtnCol2']:='Date';
    // end 
    while not PrototypeBindSource2.Eof do
     begin
      AItem:=TlistBoxItem.Create(ListBox1);
      AItem.Parent:=Listbox1;
      AItem.StyleLookup:='ListBox1Item';
      AItem.ApplyStyleLookup;
      AItem.StylesData['ValeurCol1']:=PrototypeBindSource2.DataGenerator.Fields[0].GetTValue;
      AItem.StylesData['ValeurCol2']:=PrototypeBindSource2.DataGenerator.Fields[1].GetTValue;
      PrototypeBindSource2.Next;
     end;
    Listbox1.EndUpdate;
    et voilà, c'est réalisable
    Nom : Capture_1.PNG
Affichages : 602
Taille : 6,2 Ko

  8. #8
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    et voilà, c'est réalisable
    reste à voir si c'est pertinent de le faire comme ça juste parce que le composant a le même nom que le composant qu'on utilisait dans un autre framework (VCL en l'occurrence) et ne faisait pas la même chose

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 593
    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 593
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par Coussati Voir le message
    j'ai regardé si on pouvait bidouiller un Tlistbox, mais le soucis c'est que chaque item est séparé (même si on met en colone)
    Bonjour, j'allais répondre hier soir que si le FMX.TListView était peut-être mal adapté ce n'était pas le cas du FMX.TListBox (j'indique FMX. pour ne pas les confondre avec ceux de VCL)
    Encore que, comme le souligne Patrick, ce qui est demandé s'apparente à une simple Grid facilement 'liable' aux données

    il est possible de le faire "à la main", ici un simple design pour montrer que le ListBoxHeader reste en place en haut
    Nom : Capture.PNG
Affichages : 623
Taille : 3,3 Ko Nom : Capture_1.PNG
Affichages : 626
Taille : 5,1 Ko

    La solution possible : est d'utiliser des Styles FMX
    Les explications ? Il faut aller les chercher dans mon seul tutoriel sur les styles, datant de XE4 (à l'époque pas de FMX.TListView et pire pas d'apparence dynamique). Bon d'accord, il n'y a pas d'entête de colonnes dans ce tutoriel, mais, ce n'est qu'un type particulier d'item (TListBoxHeader) que l'on associera à un style différent (ou pas) à celui des éléments.

    Dans mon esprit quelque chose comme ça
    Nom : Capture_2.PNG
Affichages : 599
Taille : 75,3 Ko
    l'éditeur de style ne se comporte pas comme le designeur de forme donc attention aux tentatives de copier/coller de composants (je me suis encore fait avoir !)
    résultat rapide (juste du design et une exécution)
    Nom : Capture.PNG
Affichages : 605
Taille : 14,9 Ko

    Avantage caché du style Header que j'ai créé, rien n'empêche de coder des évènements sur les boutons , on peut donc faire quelque chose de sophistiqué

    P.S. j'ai bien des idées pour utiliser quand même du Livebindings mais cela me demande quelques tests de faisabilité

Discussions similaires

  1. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25
  2. equivalent à explode?
    Par djridou dans le forum Langage
    Réponses: 3
    Dernier message: 28/08/2002, 11h01
  3. [Kylix] Equivalent ShellExec en CLX
    Par Anonymous dans le forum EDI
    Réponses: 7
    Dernier message: 14/08/2002, 11h55
  4. Equivalent à ExeName pour une DLL
    Par Smortex dans le forum Langage
    Réponses: 7
    Dernier message: 16/07/2002, 21h07
  5. [Kylix] equivalent winsock avec kylix
    Par Victor dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 07h43

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