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 :

indice de grille hors limite....


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut indice de grille hors limite....
    Bonjour à tous,

    j'ai un pb d'"indice de grille hors limite" sur l'utilisation de ma KStringGrid.
    J'affiche des lignes ds ma KStringGrid et lorsque j'arrive à un nb fixé de lignes (par ex. 200), je fais un RAZ de ma KStringGrid et je continue d'afficher des lignes.

    RAZ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       KStringGrid1.RowCount := 1;
       KStringGrid1.Row := 0;
    à noter que lors de la réception des lignes, je me positionne tj sur la dernière ligne reçue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       KStringGrid1.Row := KStringGrid1.RowCount - 1;
    Cette opération marche très bien sur XP (que delphi soit installé ou pas), par contre j'ai une erreur d'"indice de grille hors limite" sur certain poste en Win2000 (pas tous ; sans delphi installé dessus)

    Que dois-je faire pour résoudre ce pb ? Où dois-je chercher ?

    Merci bcp

  2. #2
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    ça marche TOUJOURS sour Windows XP ?
    C'est bien étrange !

    Eventuellement, mets des points de repère dans ton code pour savoir où ça plante et montre nous, si tu peux, le code qui pose problème.
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut
    Voilà le code de mon thread :
    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
    28
    29
    30
    31
     
       while (not stop_thread) do
        begin
           while(condition1) do
            begin
               if(condition2)then
                  inc(nb_ligne);
     
               // RAZ de la StringGrid
               if(nb_ligne> Depth_choisie)then
                begin
                  KStringGrid1.RowCount := 1;
                  KStringGrid1.Row := 0;
                  nb_ligne:= 1;
                end;
     
                // Affichage du message ds la StringGrid
                Gestion_affichage(msg);
            end;
     
            // Sélection de la dernière ligne
            if(OnLineUpdate1.Checked)then
             begin
                 if(KStringGrid1.RowCount > 2)then
                    KStringGrid1.Row := KStringGrid1.RowCount - 2;
                 KStringGrid1.Refresh;
             end;
           end;
     
           sleep(50);
        end;
    sous XP ça a tj marché, les Win2000 que j'ai ici ne plante pas, par contre sous un autre Win2000 (que je n'ai pas sous la main) là ça plante...
    Je pensais que celà venait du KStringGrid1.Row qui avait une valeur à 200 alors que le KStringGrid1.RowCount valait 0 mais non....

  4. #4
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    J'amagine que ton KStringGrid est sur une fiche à côté.
    Dans ce cas, as-tu bien appelé la méthode que tu montres par un synchronize ?
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut
    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
     
    constructor thread_debug.Create();
    begin
       FreeOnTerminate := true;
       inherited create (false);  // exécution immédiate
       stop_thread := False;
    end;
     
    procedure thread_debug.execute;
    begin
    //    mon code de tte à l'heure
    end;
     
    //et j'appelle mon thread like that :
     
    // lancement du thread principal de l'application
        thread_debug.create;

  6. #6
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    ouais, mais comme tu accède à un objet de la VCL, il faut que tu synchrnise.
    Place tout ton code dans une méthode et dans la méthode Execute appelle là méthode grâce à synchronize.
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut
    ok
    je viens de le faire, dc je ne peux pas dire si celà corrige mon pb car je n'ai pas le PC Win2000 qui plante sous la main, par contre le fait de faire comme ça m'enlève certaines choses que je pouvais faire avant (accèder aux menus, cliquer sur la fenêtre, etc etc etc) dc pas bon pour mon application.....

  8. #8
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Citation Envoyé par steph_1
    ok
    je viens de le faire, dc je ne peux pas dire si celà corrige mon pb car je n'ai pas le PC Win2000 qui plante sous la main, par contre le fait de faire comme ça m'enlève certaines choses que je pouvais faire avant (accèder aux menus, cliquer sur la fenêtre, etc etc etc) dc pas bon pour mon application.....
    Fait attention, tu n'as pas le choix. Si tu accède à des éléments de la VCL depuis un thread, il faut OBLIGATOIREMENT utiliser synchronize
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut
    mais qd je rajoute une ligne je fais bien un accès à mon élément de la VCL, alors pq qd je veux changer le rowcount il me plante ? qu'elle est la différence entre les 2 accès ?

  10. #10
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Un accès à la VCL signifie que tu accèdes à un élément graphique posé sur une TForm.
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut
    oui comme une KStringGrid posée sur une TForm...
    par contre est-ce normal qu'avec un synchronise, je n'ai plus la main sur l'appli ?

  12. #12
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Citation Envoyé par steph_1
    oui comme une KStringGrid posée sur une TForm...
    par contre est-ce normal qu'avec un synchronise, je n'ai plus la main sur l'appli ?
    Oui, c'est normal, le synchronize te fait passer aux yeux de l'application comme le thread principal.
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  13. #13
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 770
    Points
    2 770
    Par défaut
    salut, j'ai une petit question
    que fait exactement ton thréad?
    les données que tu affiche dans kSG vien d'où?
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

Discussions similaires

  1. [débutant] indice de colonne hors limite
    Par moifistand dans le forum JDBC
    Réponses: 26
    Dernier message: 26/04/2008, 02h18
  2. Réponses: 2
    Dernier message: 29/05/2007, 15h35
  3. Indice de liste hors limite
    Par pierrot67 dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/02/2007, 11h42
  4. [débutant] erreur "indice de liste hors limites(1)"
    Par lidouka dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2005, 14h31
  5. Indice de liste hors limite !!! Report
    Par EssaiEncore dans le forum Langage
    Réponses: 1
    Dernier message: 29/11/2005, 10h00

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