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 :

Capacité maximale d'une TListBox


Sujet :

Composants VCL Delphi

  1. #21
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 460
    Points : 24 877
    Points
    24 877
    Par défaut
    Citation Envoyé par XeGregory Voir le message
    Même en chargeant ma liste de cette façon-là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListBox.Items.LoadFromFile('Dictionnaire.txt');
    Je ne parviens même pas à obtenir le quart de la liste. Lors du déplacement vertical, ça bug.


    J'utilise une version Delphi 11
    Avec un CTRL+Fin on arrive bien au mot en Z mais le défilement ne fonctionne pas car le ScrollBar est surementé limité à 32K ou 65K mais la liste est bien alimentée !
    Et cela confirme qu'afficher une liste aussi longue n'a pas grand intérêt, quel humain va s'y retrouver ?
    Pour moi c'est l'inverse qu'il faut faire, c'est plutôt un moteur de recherche de mot entier ou partiel et n'afficher que les résultats de la recherche, et encore ... j'ai fait un système de recherche récemment, dans un TTreeView, j'ai triché en affichant que lot par lot, n'importe quel utilisateur voyant un résultat de 200 000 items va refaire une recherche plus précise.
    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

  2. #22
    Membre habitué Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 265
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    D'ailleurs, pourquoi remplir manuellement la TStringGrid ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      StringGrid1.Cols[0].LoadFromFile('Dictionnaire.txt', TEncoding.UTF8);
    Et c'est si depuis une ressource décompressé dans Stream et uniquement la première colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      StringGrid1.Cols[0].LoadFromStream(Stream, TEncoding.UTF8);
    Je ne pensais pas qu'il était possible de charger un TStringGrid visa LoadFromStream de cette façon-la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringGrid1.Cols[0].LoadFromFile('Dictionnaire.txt', TEncoding.UTF8);
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.

  3. #23
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 460
    Points : 24 877
    Points
    24 877
    Par défaut
    Cols et Rows sont des TStrings virtuelles traduisant la matrice, le code derrière n'est pas le plus simple, voir EnsureColRow

    En fait, on peut facilement afficher un CSv avec une TStringGrid, ligne par ligne, Row[].CommaText / DelimitedText mais on peut aussi exploité Cols[] de la même façon
    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

  4. #24
    Membre habitué Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 265
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Et cela confirme qu'afficher une liste aussi longue n'a pas grand intérêt, quel humain va s'y retrouver ?
    Pour moi c'est l'inverse qu'il faut faire, c'est plutôt un moteur de recherche de mot entier ou partiel et n'afficher que les résultats de la recherche, et encore ...
    Oui c'est se que j'ai fait, après la liste de plus 300000 mots c'est juste un visuel, Effectivement, il n'y a pas grand intérêt à l'afficher.

    Nom : Capture.PNG
Affichages : 49
Taille : 14,9 Ko
    Nom : Capture1.PNG
Affichages : 49
Taille : 15,2 Ko
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.

  5. #25
    Invité
    Invité(e)
    Par défaut
    L'utilisation du TStringGrid n'est pas très pertinente avec ce nombre d'elements , utiliser plutôt DrawGrid et dessiner toi même les éléments, tu auras besoin de charger uniquement les éléments à afficher

  6. #26
    Membre habitué Avatar de XeGregory
    Homme Profil pro
    Passionné par la programmation
    Inscrit en
    Janvier 2017
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Passionné par la programmation
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 265
    Points : 171
    Points
    171
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    D'ailleurs, pourquoi remplir manuellement la TStringGrid ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      StringGrid1.Cols[0].LoadFromFile('Dictionnaire.txt', TEncoding.UTF8);
    Et c'est si depuis une ressource décompressé dans Stream et uniquement la première colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      StringGrid1.Cols[0].LoadFromStream(Stream, TEncoding.UTF8);
    J'ai texté de chargé le TStringGrid de cette façon la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringGrid1.Cols[0].LoadFromStream(Stream, TEncoding.UTF8);
    le seule problème c'est qui faut dimensionné la StringGrid avent de chargé le LoadFromStream.

    J'ai dimensionné la StringGrid de 3000 RowCount pour testé, je passe plus de temp a chargé 3000 lignes que plus de 300000 en manuelle visa ma boucle FOR & TStringList.

    L'avantage de le TStringList c'est qui est possible de dimensionné la TStringGrid directement a la taille de la TStringList.
    Vous ne pouvez pas faire confiance à un code que vous n'avez pas totalement rédigé vous-même.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Capacité maximale d'une base de données MySQL
    Par noakiss dans le forum Débuter
    Réponses: 4
    Dernier message: 26/05/2008, 16h15
  2. Limite maximale d'une table INTERBASE 7
    Par lio33 dans le forum InterBase
    Réponses: 4
    Dernier message: 26/08/2005, 14h04
  3. Ouvrir un fichier sur un double-clic dans une TListBox
    Par SegmentationFault dans le forum Composants VCL
    Réponses: 4
    Dernier message: 09/08/2004, 17h22
  4. Comment griser une ligne dans une TListBox ?
    Par SegmentationFault dans le forum Composants VCL
    Réponses: 2
    Dernier message: 29/06/2004, 09h15
  5. taille maximale d'une base de donnée paradox
    Par Anonymous dans le forum Paradox
    Réponses: 5
    Dernier message: 14/02/2004, 17h39

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