Array type required

stephanesvh Messages postés 24 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 15 février 2004 - 23 déc. 2003 à 22:02
stephanesvh Messages postés 24 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 15 février 2004 - 6 janv. 2004 à 19:18
Bonjours a tous

Je souhaiterai creer un petit prog mettant en jeu un 2 radiobutton, 2checkBox, un stringGrid et un boutton ok

le StringGrid est composé de 59 ligne et 2 colone

je voudrais faire :

si le radioButton1.checked et CheckButton1.checked je voudrais que dans le tableau la case situé dans la 2ere colone a la 1ere ligne soit incrementer de +1 .

il y a t-il une bonne ame pour m'aider s'il vous plait

merci par avance

10 réponses

yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
24 déc. 2003 à 00:20
StringGrid1.Cells[2,1]:=IntToStr(StrToInt(StringGrid1.Cells[2,1])+1);

yve
0
stephanesvh Messages postés 24 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 15 février 2004
5 janv. 2004 à 00:49
salut yve

merci pour ton aide , je n'ai pas pu te repondre avant , j'etais en vacance.

J'ai tape le code quetu m'as dit , mais a l'execution j'ai un message d'erreur de generer.

Poject Project2.exe raised exception class EConvertError with message '" is not a valid integer value'. Process stopped. Use Step or Run to continue.

apres l'execution pas a pas , j'ai ce message qui apparait.
" is not a valid integer value

Voici le code source , je n'ai pourtant pas de " dedans
procedure TForm1.BitBtn1Click(Sender: TObject);
begin if checkBox1.Checkedtrue and RadioButton1.Checked true
then StringGrid1.Cells[2,1]:=IntToStr(StrToInt(StringGrid1.Cells[2,1])+1);

end;
end.

C'est du as quoi ce message s'il te plait ??

merci pour ton aide
0
stephanesvh Messages postés 24 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 15 février 2004
5 janv. 2004 à 00:51
salut yve

merci pour ton aide , je n'ai pas pu te repondre avant , j'etais en vacance.

J'ai tape le code quetu m'as dit , mais a l'execution j'ai un message d'erreur de generer.


Poject Project2.exe raised exception class EConvertError with message '" is not a valid integer value'. Process stopped. Use Step or Run to continue.


apres l'execution pas a pas , j'ai ce message qui apparait.
 " is not a valid integer value 


Voici le code source , je n'ai pourtant pas de " dedans
procedure TForm1.BitBtn1Click(Sender: TObject);
begin if checkBox1.Checkedtrue and RadioButton1.Checked true
       then StringGrid1.Cells[2,1]:=IntToStr(StrToInt(StringGrid1.Cells[2,1])+1);

  end;
  end.


C'est du as quoi ce message s'il te plait ??

merci pour ton aide
0
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
5 janv. 2004 à 02:06
bon, ce qu l'on tente de convertir dépasse les limites integer peut-être ?

StringGrid1.Cells[2,1]:=FloatToStr(StrToFloat(StringGrid1.Cells[2,1])+1);

ou la cellule [2,1] si décimal il y a doit être une virgule
ex: StringGrid1.Cells[2,1]:='-1,334';
yve
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stephanesvh Messages postés 24 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 15 février 2004
5 janv. 2004 à 19:47
Salut yve

Je viens tester le nouveau code que tu m'as donner et j'ai toujours un message d'erreur un peux du meme type que j'ai dit dans le post au dessus , sauf que c'est la virgule qui est en cause.

Je ne pense pas que ce que l'on veux convertir dépasse les limites d'integer. J'ai mes 2 colone vierges et je ne manipule que des nombres entiers positifs.

Est ce dû a ce que les colones n'ont pas de nom ou les lignes ??

merci pour ton aide
0
stephanesvh Messages postés 24 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 15 février 2004
5 janv. 2004 à 20:54
Re salut

Je pense avoir trouve une piste, si a la création de Form1 je fait

procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[1, 0] := '1';
end;

end.


lorsque je lance le 1er code que tu m'as donner , l'incremantation se fait
if checkBox1.Checkedtrue and RadioButton1.Checked true
       then StringGrid1.Cells[1, 0]:=IntToStr(StrToInt(StringGrid1.Cells[1, 0])+1)
       


il y a t'il un moyen pour que je puisse affecté aux colones du tableau des valeur initiale , par l'intermedaire de l'inspecteur d'objet ???

merci
0
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
5 janv. 2004 à 22:46
il y a t'il un moyen pour que je puisse affecté aux colones du tableau des valeur initiale , par l'intermedaire de l'inspecteur d'objet ???

non tu dois remplir ton tableau dans formCreate !!!

StringGrid1.Cells[0, 0] := '1';
ou avec une boucle

for x:=0 to (nombre de colonne?)do
for y:=0 to (nombre de rangé?)do
StringGrid1.Cells[x, y] := '1';

(rangéX/colonneY)ou( colonneX/rangéY) ???je sais plus ...
yve
0
stephanesvh Messages postés 24 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 15 février 2004
5 janv. 2004 à 23:09
merci

j'ai changer au profit d'une ValuelistEditor.

Comment je peux faire pour que les valeurs variable qui seront incrementer sont sauvegarder pour la prochaine fois ??

merci
0
yvemoreau Messages postés 308 Date d'inscription mardi 11 juin 2002 Statut Membre Dernière intervention 26 septembre 2008
6 janv. 2004 à 05:44
tu peux utiliser ,un fichier ini, c'est fait pour ça ,voir des exemples sur comment utiliser les fichiers ini

a la première exécution ,si le fichier n'existe pas ,tu le cré avec des valeurs par défaut ,ensuite tu ouvres le fichier et tu charges tes variables.

mais tu peux aussi modifier un peu la procédure d'incrémentation avec un try
if checkBox1.Checkedtrue and RadioButton1.Checked true
then
try
StringGrid1.Cells[1, 0]:=IntToStr(StrToInt(StringGrid1.Cells [1, 0])+1);
except StringGrid1.Cells[1, 0]:='1';
end;

or ici ,si la case est vide ou qu'une erreur de conversion survient ,c'est que la case contenait la valeur 0 et donc maintenant elle contient la valeur 1

ou encore mieux vérifier si elle contient une valeur...
if(StringGrid1.Cells[1, 0]='')then

ou les deux verifications ensembles ,on n'est jamais trop prudent...
if (checkBox1.Checkedtrue) and (RadioButton1.Checked true)
then
try
if(StringGrid1.Cells[1, 0]='')then StringGrid1.Cells[1, 0]:='1'
else
StringGrid1.Cells[1, 0]:=IntToStr(StrToInt(StringGrid1.Cells [1, 0])+1);
except StringGrid1.Cells[1, 0]:='1';
end;

mais bon ,je vois que tu as changé de composant ... ?-)
courage...
yve
0
stephanesvh Messages postés 24 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 15 février 2004
6 janv. 2004 à 19:18
salut Yve un tres grand merci pour ton aide si precieuse.

meilleur Voeux pour 2004
0
Rejoignez-nous