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

Messages postés
174
Date d'inscription
jeudi 3 février 2005
Dernière intervention
30 janvier 2009
- - Dernière réponse :  Nima - 14 mars 2018 à 23:09
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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Dernière intervention
9 janvier 2013
2
Merci
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

Dire « Merci » 2

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

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.
Commenter la réponse de cs_Delphiprog
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
0
Merci
Hello,



Envoie ton code et on verra :

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
Messages postés
174
Date d'inscription
jeudi 3 février 2005
Dernière intervention
30 janvier 2009
0
Merci
var
ligne, i : integer;
begin
ligne:= DBCtrlGrid.RowCount;
for i: =1 to ligne do
Label.Caption:=IntToStr(i);
end;

pseudoOM
Commenter la réponse de pseudoOM
Messages postés
1232
Date d'inscription
lundi 4 février 2002
Dernière intervention
4 octobre 2006
0
Merci
Mais tu as un seul label?

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Commenter la réponse de jmp77
Messages postés
174
Date d'inscription
jeudi 3 février 2005
Dernière intervention
30 janvier 2009
0
Merci
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
Commenter la réponse de pseudoOM
Messages postés
174
Date d'inscription
jeudi 3 février 2005
Dernière intervention
30 janvier 2009
0
Merci
oui et il est sur la ligne du CtrlGrid et pas en dehors.

pseudoOM
Commenter la réponse de pseudoOM
Messages postés
174
Date d'inscription
jeudi 3 février 2005
Dernière intervention
30 janvier 2009
0
Merci
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
Commenter la réponse de pseudoOM
Messages postés
174
Date d'inscription
jeudi 3 février 2005
Dernière intervention
30 janvier 2009
0
Merci
Super ça fonctionne ! Merci beaucoup !

pseudoOM
Commenter la réponse de pseudoOM

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.