[DBGRID] Afficher une ligne particulière...

cs_ThePierrot Messages postés 2 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 21 avril 2004 - 20 avril 2004 à 11:06
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 21 avril 2004 à 12:26
Salut je suis un peu novice en Delphi et je serais reconnaissant si quelqu'un pouvais me pretter main forte.
Je cherche me positionner sur une ligne particulière de mon DBGRID lors de l'ouverture du logiciel. Est ce que quekqu'un connait la marche à suivre pour faire cela. :question)

Merci d'avance :big)

3 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
21 avril 2004 à 09:53
La solution la plus simple consiste à positionner le curseur de l'ensemble de données sur un enregistrement particulier :
procedure TForm1.FormShow(Sender: TObject);
begin
  //Positionner sur le cinquième ligne de la table
  if Table1.Recordcount >= 5 then
    Table1.RecNo := 5;
end;

Automatiquement, le composant TDbGrid ajustera sa position et l'enregistrement demandé sera visible.
0
cs_ThePierrot Messages postés 2 Date d'inscription vendredi 12 décembre 2003 Statut Membre Dernière intervention 21 avril 2004
21 avril 2004 à 12:04
Merci pour l'astuce c'est exactement ce que je cherchais à faire. Mais pendant que j'y suis est-ce qu'il y aurait un moyen de récupérer un numéro d'enregistrement de la même manière. En gros quand je change d'onglet je veux mémoriser la ligne sur laquelle je travaillais puis pouvoir revenir dessus (et non pas sur le dernier enregistrement comme fais delphi automatiquement) lorsque je reviens sur mon onglet. :)
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
21 avril 2004 à 12:26
Déclarer une variable globale de type entier.
Dans l'évènement OnChange de l'onglet, lui affecter la valeur de la propriété Recno de l'ensemble de données.
Désolé, mais les contrôles à onglets peuvent aussi bien être un TTabbedNoteBook, un TTabSet, un TPageControl ou TTabControl. En l'absence de précisions suffisantes, je ne peux pas faire davantage.
Note bien que la propriété Recno est une propriété en lecture et écriture.
NB : on peut aussi utiliser les bookmarks des ensembles de données pour revenir sur un enregistrement donné.

Mais je suis très étonné que Delphi change la position d'un enregistrement simplement quand on change d'onglet. Sauf, bien entendu, si le code change le curseur de position entre-temps. >:)
0
Rejoignez-nous