Numéroter les lignes d'un DBCtrlGrid [Résolu]

Signaler
Messages postés
173
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
30 janvier 2009
-
 Nima -
Boujour,
voici mon problème. J'ai réalisé une application qui gère un classement sportif. J'ai utilisé un DBCtrlGrid et j'ai récupéré les champs de la table dans des DBText. Il affiche bien les concurents dans le bon ordre des points (du plus grand au plus petit) mais je n'arrive pas à numéroter les lignes du DBCtrlGrid. J'ai essayé en récupérant le nombre de lignes par DBCtrlGrid.RowCount et j'ai fait une boucle de 0 à la valeur de rowcount. j'ai déclaré un label sur la ligne du DBCtrlGrid et je lui affecte la valeur de mon compteur. Mais cela ne fonctionne pas car à la fin de la boucle, sur toutes les lignes le label prend la dernière valeur du compteur !
Quelqu'un pourrait-il m'aider ?

pseudoOM

8 réponses

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
Pourquoi ne pas utiliser la propriété RecNo de l'ensemble de données lié au lieu de RowCount du TDbCtrlGrid ?

Dans l'évènement OnPaint du TDbCtrlGrid, tu places le code qui affecte le contenu de ton TLabel. Par exemple :

<!--StartFragment-->
procedure TForm1.DBCtrlGrid1PaintPanel(DBCtrlGrid: TDBCtrlGrid;
  Index: Integer);
begin
  Label3.Caption := IntToStr(DbCtrlGrid.DataSource.DataSet.RecNo);
end;


Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.croix-rouge.fr/index/partner_campagne.html
Bonjour, merci vous m'avez vraiment aidé c'est exactement le résultat que je cherchais avec très peu de modification, en faite moi je voulais affiché la valeur d'un champ et pas son classement, et j'ai réussi grâce à votre aide.
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
Hello,



Envoie ton code et on verra :

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
173
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
30 janvier 2009

var
ligne, i : integer;
begin
ligne:= DBCtrlGrid.RowCount;
for i: =1 to ligne do
Label.Caption:=IntToStr(i);
end;

pseudoOM
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
Mais tu as un seul label?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
173
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
30 janvier 2009

Je sais que c'est normal que le label prend la dernière valeur valeur du compteur mais je pensais que comme c'était un DBCtrlGrid, le numéro serait différent sur chaque ligne !

pseudoOM
Messages postés
173
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
30 janvier 2009

oui et il est sur la ligne du CtrlGrid et pas en dehors.

pseudoOM
Messages postés
173
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
30 janvier 2009

Peut être qu'il y aurais moyen de détourner le problème si je savais comment n'afficher que les 10 premiers par exemple et dans ce cas je déclare 10 label et j'affecte les valeurs de 1 à 10.

pseudoOM
Messages postés
173
Date d'inscription
jeudi 3 février 2005
Statut
Membre
Dernière intervention
30 janvier 2009

Super ça fonctionne ! Merci beaucoup !

pseudoOM