Je voudrai savoir si c'est possible de permettre à l'utilisateur de sélectionner une cellule dans un stringGrid et que son click change le texte de la cellule qui l'aura selectionnée. Et si cela est possible comment le fait on?
merci.
Je voudrai savoir si c'est possible de permettre à l'utilisateur de sélectionner une cellule dans un stringGrid et que son click change le texte de la cellule qui l'aura selectionnée. Et si cela est possible comment le fait on?
merci.
Salut et Bienvenue sur les forums de Developpez.com,
Tu veux faire en sorte que lorsque l'utilisateur clic sur une cellule, que le texte de cette cellule change ?
Le texte remplacé sera donc prédéfinie où c'est l'utilisateur qui y mettra son texte ?
Tu peux regarde du coté de l'évènement OnSelectCell qui permet de récupérer la ligne et la colonne de la cellule cliquée.
Sinon, si tu veux rendre éditable toutes les cellules, il faut mettre la propriété goEditing à true dans les options.
Essaie de voir de ces deux cotés et reviens nous voir pour savoir si la réponse apportée est bien celle que tu attendais![]()
En fait je voudrais que quand l’utilisateur click dans une cellule, cela génère un calcul, mais ce calcul est différent selon la cellule sélectionnée. Je pensais utiliser des if
If « telle cellule est a été selectionnée » then
Begin
stringGrid.cells [« coordonnées de la cellule sélectionnée »] :=monresultat ;
end ;
mais je ne sais pas dans quelle procédure je le met celle de stringGridclik ?
et comment je remplie mes «... » du dessus ??
Re,
Voici un petit exemple simple.
J'ai pris une grille de 5*5 (celle par défaut lorsque l'on dépose sur la form la TStringGrid)
En espérant t'avoir aidé
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 //Remplissage des données procedure TForm1.Button1Click(Sender: TObject); var i: Integer; j: Integer; begin for i := 1 to 4 do begin for j := 1 to 3 do begin StringGrid1.Cells[i,j]:=IntToStr(i*j); end; end; end; //Calcul des totaux de chaque colonnes procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean); var i, myAddition : integer; begin myAddition := 0; case ARow of 4 : begin for i:=1 to 3 do begin myAddition := myAddition + StrToInt(StringGrid1.Cells[ACol,i]); end; StringGrid1.Cells[ACol,ARow]:= IntToStr(myAddition); end; end; end;
A+![]()
Partager