Commenbt selectionner des lignes d'1 dbgrid par programmation ?

cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013 - 15 sept. 2002 à 21:17
lguez Messages postés 33 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 26 juillet 2003 - 26 nov. 2002 à 10:37
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

cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
15 sept. 2002 à 21:39
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) ---
0
cs_apz Messages postés 281 Date d'inscription dimanche 7 avril 2002 Statut Membre Dernière intervention 11 avril 2013
15 sept. 2002 à 21:57
et comment faire ?
0
cs_Nono40 Messages postés 962 Date d'inscription mercredi 3 avril 2002 Statut Membre Dernière intervention 12 septembre 2006 2
15 sept. 2002 à 22:22
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) ---
0
lguez Messages postés 33 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 26 juillet 2003
26 nov. 2002 à 10:37
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;
0
Rejoignez-nous