Probleme avec la scrollbar d'une DBGRID
Steeve
-
steeve -
steeve -
Bonjour a tous
Je souhaite vous demander un votre aide, afin de résoudre un problème auquel je suis confronter en DELPHI 6
J'ai une DBGrid lié a une table et lorsque je clicque dessus je fais apparaitre une form pour faire des modifications sur la ligne sélectionnée.
Par contre, je voudrai revenir sur la ligne dès que les modifications son faites.
Pour cela je récupère avec un pointeur la ligne séléctionnée dans la table
PositionGrille := DM.IBQuery2.getbookmark;
et aprés les modification je reviens sur la ligne avec un
DM.IBQuery2.GotoBookmark(PositionGrille);
Cependant la ligne est mise au milieu de la grille (à lécran), or je souhaiterai garder la position initiale.C'est à dire que si la ligne est en troisiéme à l'ecran au départ, elle reste en troisieme et non qu'elle parte au milieu.
Si quelqu'un a une solution, ca serai génial car cela fait un moment que je suis sur ce problème et personne n a encore pu m aider
Merci d avance de votre aide.
Je souhaite vous demander un votre aide, afin de résoudre un problème auquel je suis confronter en DELPHI 6
J'ai une DBGrid lié a une table et lorsque je clicque dessus je fais apparaitre une form pour faire des modifications sur la ligne sélectionnée.
Par contre, je voudrai revenir sur la ligne dès que les modifications son faites.
Pour cela je récupère avec un pointeur la ligne séléctionnée dans la table
PositionGrille := DM.IBQuery2.getbookmark;
et aprés les modification je reviens sur la ligne avec un
DM.IBQuery2.GotoBookmark(PositionGrille);
Cependant la ligne est mise au milieu de la grille (à lécran), or je souhaiterai garder la position initiale.C'est à dire que si la ligne est en troisiéme à l'ecran au départ, elle reste en troisieme et non qu'elle parte au milieu.
Si quelqu'un a une solution, ca serai génial car cela fait un moment que je suis sur ce problème et personne n a encore pu m aider
Merci d avance de votre aide.
1 réponse
Procedure TForm1.DBGrid1onClick(Sender : TSender); Var n : Integer; Begin . . // before call n := Table1.RecNo; // préserver le n° de l'enregistrement active Form2.ShowModal; // after call Table1.Refresh; // rafraichissement de l'enregistrement modifié Table1.First; // position sur le 1er enregistrement Table1.MoveBy(N); // glisser jusqu'a l'enregistrement initial Activecontrol := DBGrid1; End;
* en cet exemple j'utilise aucune fonction dans le genre de :
getbookmark; ou GotoBookmark;
* si les modifications sont des ajouts (Append), il est necessairement utile de préserver l'index au lieu du numéro de l'enregistrement qui a recu le 'Click', car cet enregistrement peut décaler a cause de l'ajout.
* elle est un petit peut classique cette astuce..
bonne chance.
je te remercie d'avance tout ce qui ont une autre idée.