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 :

[Debutant]Problème de condition


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut [Debutant]Problème de condition
    Voilà j'explique mon problème quand j'execute mon programme et que je clique sur un bouton pour executer ce programme.

    Il me dit à chaque fois par exemple si j'ai déjà mis ce qu'il y a dans la ComboBox dans mon tableau dans la colonne 0 le message disant qu'il existe déjà cette clé donc je ne dois pas executer le reste du programme pour le rajouter si cette condition est rempli or ben lol il me fait comme si d'abord je demandais de rajouter dans le tableau tout ce qui concerne ce qu'il y a dans la ComboBox et vérifie ensuite s'il n'y a pas plusieurs fois le même dans le tableau et envoi des messages disant qu'il existe déjà cette clé par autant de clé qui y correspond.

    Snif c'est pas normal pour moi le code est bon mais si ca ne marche pas c'est que j'ai fait une erreur.
    Mais où?

    en bref je veux que si la ComboBox est égal à une cellulle du tableau à la colonne 0 je ne puisse pas executer le reste du programme insérant les données!

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
     
    var
    i,j,k,l,m,n:integer;
    begin
     
         //Initialise un entier
         m:=0;
     
         for n:=1 to StringGrid1.RowCount-1 do
     
            begin
              if (stringgrid1.cells[0,n]=AnsiUpperCase(combobox1.text)) then
              showmessage('Vous avez Déjà inséré Cette Clé Pub')
              else
     
               begin
     
                if (combobox1.text='Sélection des Clés de Publication') then//Condition Si on a pas sélectionné dans la ComboxBox1
     
                Showmessage('Veuillez Sélectionnez une Clé de Publication')//Afficher Avertissement
     
                else
     
                begin
     
                    //Recherche de la Clé Pub, de la Description, du Nombre Expédié
                    Query2.Close;
                    Query2.sql.clear;
                    Query2.sql.Add('SELECT ma.MCode,ma.MTirage,ma.MCost,m.MDname,ma.MDescr,p.Pname,i.Codeinteret');
                    Query2.sql.Add('FROM markets ma,media m, interet i,marketitems mi,products p');
                    Query2.SQL.Add('WHERE (p.pcode=mi.ipcode)');
                    Query2.SQL.Add('and (p.pinteret=i.codeinteret)');
                    Query2.SQL.Add('and (ma.mcode=mi.imcode)');
                    Query2.SQL.Add('and (m.mdcode=ma.mmedia)');
                    Query2.SQL.Add('and (ma.mcode=:x)');
                    Query2.Params[0].AsString:=AnsiUpperCase(combobox1.text);
                    Query2.Open;
     
                    //Recherche de Nombre de Retour
                    Query3.Close;
                    Query3.sql.clear;
                    Query3.sql.Add('SELECT COUNT(sccode) AS NombreDeRetour');
                    Query3.SQL.Add('FROM sales');
                    Query3.SQL.Add('WHERE (smcode=:x)');
                    Query3.Params[0].AsString:=AnsiUpperCase(combobox1.text);
                    Query3.Open;
                    while not Query3.Eof do
                        begin
                        m:=m+strtoint(Query3.Fields[0].AsString);
                        Query3.Next;
                        end;
     
                    //Affichage dans le StringGrid des Données
                    stringgrid1.cells[0,integ[1]]:=Query2.Fields[0].AsString;//Afficher La Clé Pub
                    stringgrid1.cells[1,integ[1]]:=Query2.Fields[1].AsString;//Afficher Le Nombre Expédié
                    stringgrid1.cells[2,integ[1]]:=Query2.Fields[2].AsString;//Afficher Le Coût
                    stringgrid1.cells[3,integ[1]]:=Query2.Fields[3].AsString;//Afficher Type
                    stringgrid1.cells[4,integ[1]]:=Query2.Fields[4].AsString;//Afficher Description
                    stringgrid1.cells[5,integ[1]]:=Query2.Fields[5].AsString;//Afficher Produit Vendu
                    stringgrid1.cells[6,integ[1]]:=Query2.Fields[6].AsString;//Afficher Interêt
                    stringgrid1.cells[7,integ[1]]:=inttostr(m);
     
                    if (Query2.Fields[1].AsInteger=0) then
     
                    showmessage('Veuillez le nombre d''expédié est égal à ZERO')
     
                    else
     
                    stringgrid1.cells[8,integ[1]]:=floattostr((strtofloat(stringgrid1.cells[7,integ[1]])/(Query2.Fields[1].AsFloat))*100);
     
                    //Adapter le Nom de ligne au nombre de Clé Pub
                    StringGrid1.Rowcount :=integ[1]+1;
     
                    //Rajout d'entier
                    integ[1]:=integ[1]+1;
     
                    //Adapte les textes aux celulles
                    for j:=0 to 8 do
                        begin
                        k:=0;
                        for i:=0 to StringGrid1.Rowcount-1 do
     
                          begin
     
                            l:=Canvas.TextWidth(StringGrid1.Cells[j,i]);//reprends la taille en pixel de la cellulle
     
                            if l>k then
     
                            begin
                            k:=l;
                            StringGrid1.ColWidths[j]:=k+4;//je met +4 pour pas que les celulles soient trop collées au texte mais sinon ca marche!
                            end;
     
                          end;
                        end;
                end;
               end;
            end;
    end;

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Salut,

    J'ai pas tout compris, faute de ponctuation dans ton message, mais je crois en saisir le sens...

    Le fait est que ton code execute le test pour chaque ligne: tu teste la première valeur, et si elle n'est pas égale au texte de ton combbox, tu ajoutes la ligne, puis tu fais pareil à la suivante... Ce qui n'est pas forcément ce que tu veux!

    En fait, il faut tester TOUTES les lignes et n'ajouter ta nouvelle entrée que si elle n'existe pas.

    Ce qu'il faut savoir, c'est qu'un StringGrid possède une propriété Rows[] qui est... Un tableau the TStrings! il te suffit d'utiliser les caratèristiques du type TStrings pour savoir rapidement et facilement si ton entrée existe, avec par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if StringGrid1.Row[0].IndexOf(AnsiUpperCase(combobox1.text)) > 0 then ...
    ... Et lorsque tu es sûr que ton entrée n'est pas dans la liste, tu n'as plus qu'à l'ajouter!

    Voilà, j'espère que ça va corriger ton problème. Dans le cas contraire, il faurdra essayer d'être plus clair sur ce que ton appli doit faire!

  3. #3
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    De sorte à respecter les règles de rédaction en vigueur sur les forums de dvp, je t'invite à formuler tes demandes dans un meilleur français, notamment le second paragraphe de ton explication, que le manque de ponctuations rend incompréhensible (du moins pour moi).

    Tu n'auras que plus de chances d'obtenir de réponses.

    J'ai cru comprendre qu'une de tes conditions n'avait pas l'effet escompté. Pour tout de même essayer de te répondre, voici celle que je soupçonne :
    Citation Envoyé par ghan77
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (combobox1.text='Sélection des Clés de Publication') then
    Selon moi, il est hasardeux d'effectuer de telles comparaisons de texte lorsque ça n'est pas nécessaire : je la remplacerais donc par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ComboBox1.ItemIndex = 0 then

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par Mukahya
    Ce qu'il faut savoir, c'est qu'un StringGrid possède une propriété Rows[] qui est... Un tableau the TStrings! il te suffit d'utiliser les caratèristiques du type TStrings pour savoir rapidement et facilement si ton entrée existe, avec par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if StringGrid1.Row[0].IndexOf(AnsiUpperCase(combobox1.text)) > 0 then ...
    Là je cmprends pas trop car sur Delphi il me dis qu'il faut un tableau recquis!

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par DMO

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ComboBox1.ItemIndex = 0 then
    Ce code ne marche pas car il considère que c'est une valeur vide.en bref comme si y avait un espace.

    donc je reformule mon problème :

    si je clique sur ajouter qu'il n'y a rien dans le tableau ca rajoute tout ce que je veux.

    si je rajoute une autre clé ca rajoute l'autre clé

    mais si je remet une clé déjà existante dans le tableau il me dit qu'il y a déjà cette clé mais rajoute quand même la ligne

    donc ce que je cherche c'est à faire en sorte que si dans toute la colonne la valeur du ComboBox est égale à la valeur d'une des cellulle dans la colonne 0 alors je n'execute pas le reste du programme!

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    pardon, j'ai fais une faute de frappe!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if StringGrid1.Rows[0].IndexOf(AnsiUpperCase(combobox1.text)) > 0 then ...
    Rows prends un S!

    Mais la prochaine fois, essais un coup d'auto-completion, pour voir ce que Delphi te propose

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 177
    Points : 74
    Points
    74
    Par défaut
    j'ai changer l'ordre du code :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    var 
    i,j,k,l,m,n:integer; 
    begin 
     
         //Initialise un entier 
         m:=0; 
     
         if ComboBox1.text ='' then//Condition Si on a pas sélectionné dans la ComboxBox1
              begin
              Showmessage('Veuillez Sélectionnez une Clé de Publication');//Afficher Avertissement
              end
     
              else
     
              begin
              for n:=1 to StringGrid1.RowCount-1 do
                if (stringgrid1.cells[0,n]=AnsiUpperCase(combobox1.text)) then
                begin
                showmessage('Vous avez Déjà inséré Cette Clé Pub');
                end
                else
                begin
     
                    //Recherche de la Clé Pub, de la Description, du Nombre Expédié
                    Query2.Close;
                    Query2.sql.clear;
                    Query2.sql.Add('SELECT ma.MCode,ma.MTirage,ma.MCost,m.MDname,ma.MDescr,p.Pname,i.Codeinteret');
                    Query2.sql.Add('FROM markets ma,media m, interet i,marketitems mi,products p'); 
                    Query2.SQL.Add('WHERE (p.pcode=mi.ipcode)'); 
                    Query2.SQL.Add('and (p.pinteret=i.codeinteret)'); 
                    Query2.SQL.Add('and (ma.mcode=mi.imcode)'); 
                    Query2.SQL.Add('and (m.mdcode=ma.mmedia)'); 
                    Query2.SQL.Add('and (ma.mcode=:x)'); 
                    Query2.Params[0].AsString:=AnsiUpperCase(combobox1.text); 
                    Query2.Open; 
     
                    //Recherche de Nombre de Retour 
                    Query3.Close; 
                    Query3.sql.clear; 
                    Query3.sql.Add('SELECT COUNT(sccode) AS NombreDeRetour'); 
                    Query3.SQL.Add('FROM sales'); 
                    Query3.SQL.Add('WHERE (smcode=:x)'); 
                    Query3.Params[0].AsString:=AnsiUpperCase(combobox1.text); 
                    Query3.Open; 
                    while not Query3.Eof do 
                        begin 
                        m:=m+strtoint(Query3.Fields[0].AsString); 
                        Query3.Next; 
                        end; 
     
                    //Affichage dans le StringGrid des Données 
                    stringgrid1.cells[0,integ[1]]:=Query2.Fields[0].AsString;//Afficher La Clé Pub 
                    stringgrid1.cells[1,integ[1]]:=Query2.Fields[1].AsString;//Afficher Le Nombre Expédié 
                    stringgrid1.cells[2,integ[1]]:=Query2.Fields[2].AsString;//Afficher Le Coût 
                    stringgrid1.cells[3,integ[1]]:=Query2.Fields[3].AsString;//Afficher Type 
                    stringgrid1.cells[4,integ[1]]:=Query2.Fields[4].AsString;//Afficher Description 
                    stringgrid1.cells[5,integ[1]]:=Query2.Fields[5].AsString;//Afficher Produit Vendu 
                    stringgrid1.cells[6,integ[1]]:=Query2.Fields[6].AsString;//Afficher Interêt 
                    stringgrid1.cells[7,integ[1]]:=inttostr(m); 
     
                    if (Query2.Fields[1].AsInteger=0) then 
                    begin
                    showmessage('Veuillez le nombre d''expédié est égal à ZERO') 
                    end
                    else
     
                    stringgrid1.cells[8,integ[1]]:=floattostr((strtofloat(stringgrid1.cells[7,integ[1]])/(Query2.Fields[1].AsFloat))*100); 
     
                    //Adapter le Nom de ligne au nombre de Clé Pub 
                    StringGrid1.Rowcount :=integ[1]+1; 
     
                    //Rajout d'entier 
                    integ[1]:=integ[1]+1; 
     
                    //Adapte les textes aux celulles 
                    for j:=0 to 8 do 
                        begin 
                        k:=0; 
                        for i:=0 to StringGrid1.Rowcount-1 do 
     
                          begin 
     
                            l:=Canvas.TextWidth(StringGrid1.Cells[j,i]);//reprends la taille en pixel de la cellulle 
     
                            if l>k then 
     
                            begin 
                            k:=l; 
                            StringGrid1.ColWidths[j]:=k+4;//je met +4 pour pas que les celulles soient trop collées au texte mais sinon ca marche! 
                            end; 
     
                          //end; 
                        end; 
                end; 
               end; 
            end; 
    end;
    la condition "si la ComboBox est vide le reste du programme n'est pas executé" marche à tout moment correctement donc j'en conclu que le problème viens de cette partie de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    begin
              for n:=1 to StringGrid1.RowCount-1 do
                if (stringgrid1.cells[0,n]=AnsiUpperCase(combobox1.text)) then
                begin
                showmessage('Vous avez Déjà inséré Cette Clé Pub');
                end
                else
                begin
    en fait je pense qu'il cherche si la ComboBox est égal à la cellulle de la StrinGrid mais qu'il ne fait pas le Sinon et qu'il fait à la suite l'execution du programme par autant de ligne déjà existante +1

  8. #8
    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
    *Prend une grande bouffée d'air et essaie de lire à haute voix le texte jusqu'au point* ... ... *s'etouffe au milieu*

    bon trève de plaisanterie ^^

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    var
    i,j,k,l,m,n:integer;
    bFound : Boolean;
    begin
      //Initialise un entier
      m:=0;
      // Autant le faire au debut ca sert à rien de tester toutes les lignes.
      if (combobox1.ItemIndex= [NUMERO DE L'INDEX]) then
      begin
        Showmessage('Veuillez Sélectionnez une Clé de Publication')//Afficher Avertissement
        exit; // on sort de la procédure
      end;
     
      bFound := False;
      i := 1;
      While (i <= StringGrid1.RowCount-1) and not bFound do
        if if (stringgrid1.cells[0,i]=AnsiUpperCase(combobox1.text)) then
          bFound := True;
     
      if bFound then
        showmessage('Vous avez Déjà inséré Cette Clé Pub')
      else begin
        //Recherche de la Clé Pub, de la Description, du Nombre Expédié
        Query2.Close;
        Query2.sql.clear;
        Query2.sql.Add('SELECT ma.MCode,ma.MTirage,ma.MCost,m.MDname,ma.MDescr,p.Pname,i.Codeinteret');
        Query2.sql.Add('FROM markets ma,media m, interet i,marketitems mi,products p');
        Query2.SQL.Add('WHERE (p.pcode=mi.ipcode)');
        Query2.SQL.Add('and (p.pinteret=i.codeinteret)');
        Query2.SQL.Add('and (ma.mcode=mi.imcode)');
        Query2.SQL.Add('and (m.mdcode=ma.mmedia)');
        Query2.SQL.Add('and (ma.mcode=:x)');
        Query2.Params[0].AsString:=AnsiUpperCase(combobox1.text);
        Query2.Open;
     
        //Recherche de Nombre de Retour
        Query3.Close;
        Query3.sql.clear;
        Query3.sql.Add('SELECT COUNT(sccode) AS NombreDeRetour');
        Query3.SQL.Add('FROM sales');
        Query3.SQL.Add('WHERE (smcode=:x)');
        Query3.Params[0].AsString:=AnsiUpperCase(combobox1.text);
        Query3.Open;
        while not Query3.Eof do
        begin
          m:=m+strtoint(Query3.Fields[0].AsString);
          Query3.Next;
        end;
     
        //Affichage dans le StringGrid des Données
        for i := 0 to 6 do
          stringgrid1.cells[i,integ[1]]:=Query2.Fields[i].AsString;
        stringgrid1.cells[7,integ[1]]:=inttostr(m);
     
        if (Query2.Fields[1].AsInteger=0) then
          showmessage('Veuillez le nombre d''expédié est égal à ZERO')
        else
          stringgrid1.cells[8,integ[1]]:=floattostr((strtofloat(stringgrid1.cells[7,integ[1]])/(Query2.Fields[1].AsFloat))*100);
     
        //Adapter le Nom de ligne au nombre de Clé Pub
        StringGrid1.Rowcount :=integ[1]+1;
        //Rajout d'entier
        integ[1]:=integ[1]+1;
        //Adapte les textes aux celulles
       // Ca serait peut être mieux de mettre ca en une petite procédure car ca doit faire 2 fois que tu l'utilises non ?
        for j:=0 to 8 do
        begin
          k:=0;
          for i:=0 to StringGrid1.Rowcount-1 do
          begin
            l:=Canvas.TextWidth(StringGrid1.Cells[j,i]);//reprends la taille en pixel de la cellulle
            if l>k then
            begin
              k:=l;
              StringGrid1.ColWidths[j]:=k+4;//je met +4 pour pas que les celulles soient trop collées au texte mais sinon ca marche!
            end;
          end;  // for i
        end; // for j
      end; // if
    end;
    Version arranger, je sais pas trop si ca correspond à ce que tu veux, vu que les end sont dur dur à reperer.

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2003
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 23
    Points : 22
    Points
    22
    Par défaut
    Erreur de procédure, Prise 2...

    Bon, je vais essayer de t'expliquer ce que fais le programme tel qu'il est écrit:
    * Je teste si le texte du combobox est vide, si oui je sors
    * Sinon je boucle sur toutes les ligne de mon stringgrid
    * pour chaque ligne : je teste si le texte du combobox (en majuscule) est égal à la première colonne de la gligne courante. Si oui, j'affiche que la ligne à déjà été ajoutée, sinon j'ajoute
    * je passe à la ligne suivante

    Ce sui veut dire que, pour toute ligne qui n'a pas le même "titre" que ton combobox, tu vas rajouter une ligne supplémentaire avec les infos de ton combo!

    Ce qu'il faut faire, c'est de tester si la ligne existe AVANT de faire l'ajout, ce qui veut dire que ton code d'ajout doit être à l'extérieur de ta boucle!

    Le plus simple, dans changer ta manière de programmer:
    * Sors la grosse procédure d'ajout de la boucle
    * Supprime la partie "else" de ton test sur Cells[0,n]
    * Sous ton "showmessage", rajoute:
    La procédure sortira de la fonction si elle a trouvé une ligne avec le même "titre" que ta combobox. Dans le cas contraire, elle exécutera la procédure de rajout

    J'espère que c'est clair cette fois-ci (des fois je ne me rends pas compte que je suis incompéhensible )

  10. #10
    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
    Petite amélioration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          for i := 0 to Stringrid1 .Colcount -1 do
            if Stringrid1 .ColWiths[i] < Canvas.TextWidth(Stringrid1 .Cells[i,integ[1]]) + 4 then
              Stringrid1 .ColWidths[i]:= Canvas.TextWidth(Stringrid1 .Cells[i,integ[1]]) + 4;
    A mettre apres : stringgrid1.cells[8,integ[1]]:=floattostr((strtofloat(stringgrid1.cells[7,integ[1]])/(Query2.Fields[1].AsFloat))*100);
    et avant : //Adapter le Nom de ligne au nombre de Clé Pub

    et virer la partie qui sert a redimessionner les lignes, car c'est inutile de rescanner toute la grille. si les valeurs que tu rajoutes ne sont pas plus grande que la taille actuelle autant ne pas rajouter ^^

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

Discussions similaires

  1. [Debutant]Problème Condition et TChart
    Par ghan77 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 03/01/2006, 12h12
  2. [DX9] [Debutant] Problème de transparence :(
    Par SekYo dans le forum DirectX
    Réponses: 5
    Dernier message: 10/09/2004, 14h19
  3. [Debutant] Problème de sécurité dans un applet
    Par peaceinpal dans le forum Applets
    Réponses: 3
    Dernier message: 09/09/2004, 20h56
  4. [debutant]Problèmes
    Par BibiGmi dans le forum OpenGL
    Réponses: 2
    Dernier message: 05/03/2004, 14h00
  5. [Debutant] Problème du linker [Dev-c++4]
    Par Macdir dans le forum Dev-C++
    Réponses: 3
    Dernier message: 30/05/2003, 20h50

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