cs_micmar
Messages postés4Date d'inscriptionlundi 27 octobre 2003StatutMembreDernière intervention 5 mai 2010
-
5 mai 2010 à 09:44
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 2013
-
5 mai 2010 à 12:05
Bonjour,
J'ai le code suivant,qui à trois cellules pour les données et trois autres pour les résultats sur la même ligne. Sachant que je prend un chiffre d'une cellule de la ligne au-dessus pour calculer et que le focus revient à la ligne de dessous, première colonne.Déplacement avec la touche Entrée.
var Tableau:array[0..5,0..6] of real;
begin
//récupère les données dans le tableau
Tableau[2,0]:=StrToFloat(Grille.Cells[2,0]);
Tableau[0,1]:=StrToFloat(Grille.Cells[0,1]);
Tableau[1,1]:=StrToFloat(Grille.Cells[1,1]);
Tableau[2,1]:=StrToFloat(Grille.Cells[2,1]);
//calculs
Tableau[4,1]:=Tableau[0,1]/Tableau[1,1];
Tableau[5,1]:=Tableau[2,1]-Tableau[2,0];
Tableau[3,1]:=Tableau[1,1]/Tableau[5,1]*100;
//Affiche les résultats
Grille.Cells[3,1]:=FloatToStr(Tableau[3,1]);
Grille.Cells[4,1]:=FloatToStr(Tableau[4,1]);
Grille.Cells[5,1]:=FloatToStr(Tableau[5,1]);
end;
Comment avoir le code qui est valide dans toutes les 200 lignes du StringGrid.
Merci
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 5 mai 2010 à 12:05
Bonjour.
Il te suffit de travailler en coordonnées relatives.
Tu as par exemple les propriétés Col et Row qui te donnent les coordonnées de la cellule active.
Donc tu peux faire : Grille.Cells[Grille.Col + 1, Grille.Row - 1]
Attention dans ce cas à vérifier auparavant la validité des indices:
ligne >= 0 et < RowCount
colonne >= 0 et < ColCount
Une remarque : as-tu réellement besoin d'un array ? Il me semble que dans ton exemple, 3 variables seraient suffisantes.