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 :

Listview et sa propriété showselection


Sujet :

Composants FMX Delphi

  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    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 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut Listview et sa propriété showselection
    Bonjour,

    J'ai un petit problème esthétique avec cette propriété et ce uniquement au premier "remplissage" de la liste
    Nom : Capture.PNG
Affichages : 227
Taille : 4,5 Ko
    si je change de commande puis reviens sur tout autre commande ou bien la même j'obtiens
    Nom : Capture_1.PNG
Affichages : 218
Taille : 4,9 Ko
    présentation nettement plus lisible.

    Question : quelqu'un a-t-il une idée pour que la première interrogation soit affichée de la même manière que les suivante ?
    (je voudrais éviter d'en passer par un style)
    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

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Cela ne serait pas un blanc prévu pour être sur un bleu foncé pour montrer la sélection qui déconne un peu ?
    C'est comme en VCL, le HideSelection a aussi quelques effets de bord

    lors du changement de sélection, tu vois aussi l'anomalie ailleurs que la première ligne ?
    A part, désélectionner l'item
    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 030
    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 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Merci,
    Cela ne serait pas un blanc prévu pour être sur un bleu foncé pour montrer la sélection qui déconne un peu ?
    Non, il n'y a normalement pas de blanc prévu
    lors du changement de sélection, tu vois aussi l'anomalie ailleurs que la première ligne ?
    Alors, déjà, il faut que je tombe sur une commande avec plusieurs lignes (ce qui est rare) pour faire le test.
    Dans ce cas, j'ai le même phénomène : la première fois pour les lignes sélectionnées, j'ai du blanc sur bleu-ciel ensuite (aller-retour la commande) c'est devenu du noir sur bleu-ciel (ce que je veux)

    Le pire est que je tente de le reproduire dans un exemple plus simple et ne constate pas ce phénomène !
    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
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Un truc de Warrior inspiré du source

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if Assigned(ListView.Selected) then
      for it: TListItemDrawable in ListView.Selected.View.ViewList do
        if it is TListItemText then
          TListItemText(it).SelectedTextColor := clBlack;
    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

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    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 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    warrior qui a failli fonctionner (avec quelques ajustements)
    à l'ouverture
    Nom : Capture.PNG
Affichages : 200
Taille : 6,5 Ko
    Clic sur la ligne suivante
    Nom : Capture_1.PNG
Affichages : 205
Taille : 6,5 Ko
    aller/retour lignes->entete->lignes puis sélection de la seconde
    Nom : Capture_2.PNG
Affichages : 201
Taille : 6,8 Ko
    Cela va me rendre chèvre, je vais devoir fouiller dans le style en tout cas je ne comprends pas comment cela passe d'un mode sélectionné à non sélectionné
    encore moins que, dans mon exemple "simple" je n'ai pas le phénomène
    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

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Lors OnChange ou OnSelectItem, faut relancer le code car chaque item a ses propres vues (il y a un systeme de passe, je suppose comme la VCL, un truc genre prePaint, postPaint ...)

    voir être massif puisque la liste est courte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for itv: TListItem in ListView.Items do
      for it: TListItemDrawable in itv.View.ViewList do
        if it is TListItemText then
          TListItemText(it).SelectedTextColor := clBlack;
    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

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    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 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Oui, mais j'aurais voulu éviter, surtout que ce n'est que pour la première commande !
    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

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    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 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Bon, alors pour finir la soirée, je suis passé par une sorte de hacking de style en codant ceci dans le onCreate de la forme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    uses FMX.Styles;
     
    procedure TFormPrestaShop.FormCreate(Sender: TObject);
    var Aco : TColorObject;
        AStyle : TFMXObject;
    begin
    AStyle:=TStyleManager.ActiveStyle(Self);
    ACo:=TColorObject(AStyle.FindStyleResource('listviewstyle.selectiontext'));
    if Assigned(ACo) then ACo.Color:=Talphacolors.Crimson; // exprés pour voir un changement notable 
     
    end;
    c'est presque ça, il me manque une instruction pour que cela s'applique du premier coup

    Le plus dingue de l'histoire, c'est que je ne comprends pas d'où peut venir cette couleur ! J'ai beau fouiller dans ce style (Listviewstyle est hyper complexe, plein d'appel à des StyleObjects) je ne vois nulle part cette couleur blanche ou approchante)
    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

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 030
    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 030
    Points : 40 928
    Points
    40 928
    Billets dans le blog
    62
    Par défaut
    Eurêka, du moins en partie, j'ai trouvé le coupable et cela devrait faire plaisir à Anselme45 : c'est le TTabControl (où plus exactement la transition entre onglets)

    Voilà un apperçu
    Nom : Capture.PNG
Affichages : 196
Taille : 24,7 Ko
    J'ai la même liste, celle de droite est dans la forme principale, celle de gauche dans TabItem2 non actif au démmarrage de l'application.
    Quand j'ouvre le fichier, j'en profite pour passer tabItem2 en onglet actif en utilisant une transition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm123.Button1Click(Sender: TObject);
    begin
    ClientDataset1.Active:=true;
    Tabcontrol1.Next();
    end;
    Rien de bien sorcier mais la différence saute aux yeux !

    Si tabItem2 est actif au design alors pas de souci.
    Si, au lieu d'utiliser une transition, je passe directement à l'onglet (Tabcontrol1.TabIndex:=1) pas de souci non plus

    Conclusions :
    1 - je vais me passer de transition pour régler mon problème
    2 - un petit bogue, du moins avec rio 10.3.2 . Avec Sidney 10.4.1 tout est OK (AMHA cela vait du être signalé, mais je n'ai pas le courage de faire la recherche dans le portail qualité)

    en tout cas, même si j'ai perdu du temps, cela m'a permis de toucher un peu plus aux styles
    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

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

Discussions similaires

  1. Réponses: 20
    Dernier message: 18/01/2015, 23h33
  2. Question sur propriété des Listview
    Par Beaudelicius dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/09/2011, 16h23
  3. ListView et la propriété Anchor
    Par damingo dans le forum VB.NET
    Réponses: 2
    Dernier message: 18/06/2010, 14h27
  4. [VB.NET] ListView Problème avec propriété View à 'List'
    Par elkidos dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/08/2006, 17h10
  5. Propriété ShowColumnSortIndicators du composant ListView
    Par Gaadek dans le forum Composants VCL
    Réponses: 5
    Dernier message: 07/07/2006, 00h38

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