Stringgrid delete row

cs_saravana
Messages postés
91
Date d'inscription
vendredi 25 mars 2005
Statut
Membre
Dernière intervention
18 octobre 2007
- 21 nov. 2005 à 18:03
cs_Adkiks
Messages postés
40
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
29 janvier 2006
- 26 nov. 2005 à 16:49
bjr;
comment supprimer une ligne séléctionnée dans un stringgrid
j'ai fé ma petite recheche le code proposé ne fonctionne pas!
++

3 réponses

DRJEROME
Messages postés
436
Date d'inscription
jeudi 9 janvier 2003
Statut
Membre
Dernière intervention
5 février 2015

21 nov. 2005 à 21:54
<HR>
procedure DeleteRow(SG:TStringGrid;Row:integer);
var
i:integer;
begin
if (SG.RowCount-1>Row) and (Row>0) and (SG.RowCount>1) then
begin
for i:=Row+1 to SG.RowCount-1 do SG.Rows[i-1].Assign(SG.Rows[i]);
SG.RowCount:=SG.RowCount-1;
end;
end;

<HR>


N'oubliez pas de cliquer sur Réponse acceptée si c'est OK

DrJerome
0
Abadianet
Messages postés
40
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2006
1
21 nov. 2005 à 21:58
Bonsoir,

A ma connaissance tu n'as de méthode pour supprimer une ligne.
Tu dois écraser la ligne courante par la suivante, puis la suivante par celle d'après, ainsi de suite et en fin décremnter la propriété RowCount

for i := Row to RowCount - 2 do
for j := 0 to ColCount - 1 do
Cells[j, i] := Cells[j, i + 1];
Dec(RowCount);

Abadiane
0
cs_Adkiks
Messages postés
40
Date d'inscription
jeudi 20 mai 2004
Statut
Membre
Dernière intervention
29 janvier 2006

26 nov. 2005 à 16:49
Voila je te poste un exemple complet .j'espere que c'est ce que tu cherches.

unit Unit1;


interface


uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids;


type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
procedure SupprimerLigne(Sg: TStringGrid;Ligne:integer);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure StringGrid1DblClick(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;


var
Form1: TForm1;
LigneASupprimer:integer;
implementation


{$R *.DFM}


procedure Tform1.SupprimerLigne(Sg: TStringGrid;Ligne:integer);
var
i,j: Integer;
begin
with sg do
begin


for i := Ligne to RowCount - 2 do
Rows[i] := Rows[i + 1];
RowCount := RowCount - 1;
end
end;
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
//déterminer la ligne a supprimer
LigneASupprimer:=ARow;
end;


procedure TForm1.StringGrid1DblClick(Sender: TObject);
begin

SupprimerLigne(StringGrid1,LigneASupprimer)
end;


end.
0