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 :

probleme ansiindexstr (hors limite (-1))


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 30
    Points : 16
    Points
    16
    Par défaut probleme ansiindexstr (hors limite (-1))
    Salut !

    J'utilisé cette fonction bien pratique selon les conseils trouvés dans la FAQ delphi, mais voila a chaque fois que ma listbox est vide ou que rien n'est selectionné, j'ai une erreur "indice de liste hors limite (-1)" Pourtant je lui ai bien spécifié ce que je voulais (pour le reste ca fonctionne parfaitement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    case ansiindexstr(listbox2.items[selec], [La ya mes chaines...]
    // puis toutes les réponses jusqu'a la fin
       ...
     
       19: begin
           diff := minutespan(timefab, now);
           totalfab := inttostr(trunc(diff));
           end;
       -1: showmessage('Selectionnez un nom !');
       end;
    end;
    Alors la vraiment je seche! je ne vois vraiment pas ce que j'ai fait de mauvais... Merci d'éclairer ma lanterne!

  2. #2
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Simplement, lorsque tu fais listbox2.items[selec] c'est déjà trop tard si selec = -1.

    Il te faut faire un test avant de faire ton case of :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if selec>-1 then
      case [..........]
    else
      begin
        // Rien n'est selectionné dans la listBox
      end
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    Bon ca marche comme ca je te remercie
    Ceci dit je ne comprend toujours pas pourquoi ca ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    uses StrUtils;
    ...
    case AnsiIndexStr(Str, ['Chaîne1', 'Chaîne2', 'Chaîne3']) of
      0 : // Str = 'Chaîne1'
      1 : // Str = 'Chaîne2'
      2 : // Str = 'Chaîne3'
      -1 : // Str ne vaut aucune de ces trois chaînes
    end;
    C'est l'exemple de la FAQ, et d'apres ce que j'en avait compris la derniere ligne servait justement a indiquer quoi faire lorsque str (donc mon listbox2.items[selec]) est vide... Alors pourquoi dans mon cas c pas bon?

  4. #4
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Citation Envoyé par quarkz
    C'est l'exemple de la FAQ, et d'apres ce que j'en avait compris la derniere ligne servait justement a indiquer quoi faire lorsque str (donc mon listbox2.items[selec]) est vide... Alors pourquoi dans mon cas c pas bon?
    Car il faut distinguer deux cas (pour l'ex AnsiIndexStr(Str, ['Chaîne1', 'Chaîne2', 'Chaîne3'])):
    1. Si Str n'est pas dans la liste, AnsiIndexStr te renvoie bien -1
    2. Si Str de le récupère d'un item de ta listBox et que tu lui donne comme indice -1, c'est trop tard !
      Lors du GetItem(-1), l'indice -1 est hors de porté donc exception
      S'il y a exception, Str ne sera pas rempli et on arrete tout: on sort de la procédure


    Et toi, c'est bien le cas 2.
    "Si vous voulez être l’esclave des banques et payer pour financer votre propre esclavage, alors laissez les banquiers créer la monnaie" - Josiah Stamp, 1920, Gouverneur de la Banque d’Angleterre
    "Qui ne peut acheter ruine qui voudrait vendre" - Jacques Duboin.
    "Nous n'héritons pas la terre de nos parents, nous l'empruntons à nos enfants." - Antoine de Saint Exupéry

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    Okiiii! je vois tout a fait ^^

    Je te remercie beaucoup!

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

Discussions similaires

  1. [débutant] erreur "indice de liste hors limites(1)"
    Par lidouka dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2005, 14h31
  2. [TListBox] Problème "Indice hors limite (-1)"
    Par renorx dans le forum Composants VCL
    Réponses: 16
    Dernier message: 08/12/2005, 17h47
  3. Indice de liste hors limite !!! Report
    Par EssaiEncore dans le forum Langage
    Réponses: 1
    Dernier message: 29/11/2005, 10h00
  4. indice de grille hors limite....
    Par steph_1 dans le forum Langage
    Réponses: 12
    Dernier message: 02/08/2005, 11h18
  5. Erreur "indice hors limite(0)" non comprise
    Par Bruno1905 dans le forum Bases de données
    Réponses: 9
    Dernier message: 10/06/2005, 12h02

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