Commenbt selectionner des lignes d'1 dbgrid par programmation ?

Signaler
Messages postés
281
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
11 avril 2013
-
Messages postés
33
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
26 juillet 2003
-
salut,

comment selectionner des lignes (rows) dans une DBGrid par programmation.

j'ai fait le code suivant mais ca n'a pas foctionner.

le code :

------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
rec, recn1, recn2 : integer;
List : TBookMark;
begin
// selection automatique a l'execution des lignes d'une dbgrid
recn1:=1 ;
recn2:=recn1+3;

// travailler avec 4 enregistrements
for rec:=recn1 to recn2 do
begin

// marque l'enregistrement en cours
List:=TAB.GetBookMark;

//avoir la focalisation sur l'enresigtrement en cours
DBGrid1.SetFocus;

// selectionner l'enregistrement en cours
DBGrid1.SelectedRows.Items[rec-1];

{Là se declenche exception EStringListError avec le message :
Indice de list hors limite(0)}

// verification de lindex de la ligne selectionnee
showmessage(IntToStr(DBGrid1.SelectedRows.IndexOf(DBGrid1.SelectedRows.Items[rec-1])));
end;
// savoir le nombre de lignes selectionnes
showmessage(IntToStr(DBGrid1.SelectedRows.Count);
end;

------------------------------------------------------------

Merci de me repondre

4 réponses

Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
1
En fait ce n'est pas possible : la propriété SelectedRows est en lecture seule. Dans ce genre de cas la compilation ne donne pas d'erreur mais toutes les valeurs affectée provoque une erreur.

--- :sleepy) Nono du Moulin :sleepy) ---
Messages postés
281
Date d'inscription
dimanche 7 avril 2002
Statut
Membre
Dernière intervention
11 avril 2013

et comment faire ?
Messages postés
962
Date d'inscription
mercredi 3 avril 2002
Statut
Membre
Dernière intervention
12 septembre 2006
1
Je crois malheureuseument que ce n'est pas possible. Les enregistrements sélectionnés le sont par l'utilistateur. Il n'est pas facile de le simuler.

--- :sleepy) Nono du Moulin :sleepy) ---
Messages postés
33
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
26 juillet 2003

Pour se déplacer dns un DBGrid, c'est au niveau de la BD qu'il faut se positionner.
Sinon pour utiliser les Bookmark est par exemple:

procedure TFenGestXX.BtnModifClick(Sender: TObject);
var
SavePlace: TBookmark;

begin
// Sauvegarde de la ligne en cours
SavePlace :=QueryXX.GetBookmark;
.
.
.
// contenue de la procédure
.
.
.

try
QueryXX.GotoBookmark(SavePlace);
except
on EDatabaseError do QueryXX.FreeBookmark(SavePlace);
end;
end;