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
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.