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

Langage Delphi Discussion :

Message d'erreur : Liste index out of bounds (-1)


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 49
    Points : 48
    Points
    48
    Par défaut Message d'erreur : Liste index out of bounds (-1)
    Bonjour à tous,

    Depuis lundi je tourne sur place avec une application qui me donne le message d'erreur signalé en intitulé de la discussion.
    En effet cette application marchait bien jusqu'à ce que je modifie des fiches dans l'application et depuis j'ai ce message. Peu importe ce que je fais au lancement de l'application une boite de dialogue s'affiche portant ce message et se multiplie anarchiquement comme si c'était une boucle infinie. Pour résoudre le problème j'ai annulé tout ce que j'ai fait dans l'application mais aucun résultat. J'ai même pris une version du logiciel que j'ai abandonné depuis plus d'un mois mais j'ai le même résultat.
    J'utilise Delphi 6 et 7 et une base de donnée tournant sur Access. Pour me connecter à la base de donnée j'utilise BDE.
    Quelqu'un peut-il m'aider à sortir de ce pétrin SVP. Je suis stable depuis lundi sans suite. Je compte sur tous et sur chacun.

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    C'est le message caractéristique d'erreur quand on dépasse le nombre d'éléments d'une liste.
    Tu devrais checker tes listbox/combobox et tous autres composants qui utilisent des TStrings.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 49
    Points : 48
    Points
    48
    Par défaut Je vais essayer
    Merci je vais essayer pour voir mais je voudrais savoir quelle est la taille de donnée maximale pouvant entrer dans un combobox. Dans mon application j'utilise juste des combobox et des stringGrid. Les informations à remplir dans ces deux composants sortent généralement de la base de donnée. Pour le moment je n'ai aucune table qui contient plus de 100 enregistrements. S'il n'y a aucun enregistrement dans une table qu'il faut parcourir à l'ouverture de la fiche y'a il un problème?

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 586
    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 586
    Points : 25 262
    Points
    25 262
    Par défaut
    Tu devras t'inquiéter vers plus de 10000 éléments ... surtout pour une question d'affichage que pour une question de stockage ...

    Tu devrais activer "Arrêter sur Excpetion Delphi" dans les Options du Débuggeur, ...

    Si c'est au démarrage, débug Pas à Pas, ...

    Si tu fais bien un remplissage comme ceci, tu ne devrais avoir aucun problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Combo.Items.Clear();
    while not Table.EOF do
    begin
      Combo.Items.Add(Table.FieldsByName('Champ1').AsString);
      Table.Next();
    end;
    Mais dans ton code, vérifie tu à chaque fois que tu accéde à Items ou à Strings, le Count !!! Il est impératif de le vérifier avant !

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    vérifies aussi du côté de l'indexation des listes que tu ne déborde pas l'indice maximal, ou minimal. exemple d'une liste contenant 10 éléments, l'accès à l'élément d'indice -1 ou d'indice 10 provoquera certainement cette erreur.

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Au lieu de remplir manuellement un combobox, autant utiliser le DbLookUpCombobox

  7. #7
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 173
    Points
    4 173
    Par défaut
    A mon avis, dans ton code de temps en temps du doit récupérer la valeur sélectionnée d'une combo avec un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      s := cb.Items[cb.ItemIndex];
    Hors si la combo est vide, ItemIndex vaut -1. Et Items[-1] va provoquer l'erreur.

    Fait ce que ShaiLeTroll suggère : Lance l'appli en Debug avec l'arrêt sur exception Delphi activé. Le debogueur devrait t'indiquer immédiatement l'emplacement de ton erreur.

  8. #8
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 49
    Points : 48
    Points
    48
    Par défaut merci
    Bonjour,
    Merci pour toutes vos aides elles ont été précieuses. J'ai pu résoudre le problème grâce à vous.

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

Discussions similaires

  1. Erreur Python : list index out of range
    Par mmmppp dans le forum Général Python
    Réponses: 4
    Dernier message: 15/10/2011, 21h59
  2. list index out of bounds
    Par sasaas dans le forum Débuter
    Réponses: 1
    Dernier message: 13/01/2009, 17h54
  3. [socket]Erreur List Index Out Of Bound
    Par afrodje dans le forum C++Builder
    Réponses: 1
    Dernier message: 23/06/2008, 16h43
  4. Erreur List Index Out Of Bound
    Par Baxter67 dans le forum C++Builder
    Réponses: 29
    Dernier message: 21/04/2008, 10h39
  5. Réponses: 15
    Dernier message: 31/03/2007, 16h32

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