Salut
je voudrais formater les nombres contenus dans les cellules d'un stringgrid
en tenant en compte les séparateurs de milliers.
Donc, après avoir tapé "1000" et validén on doit avoir "1 000".
J'utilise le code suivant dans la procedure OnDrawCell :
A l'exécution, je remarque que la valeur initiale saisie et la valeur formatée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 procedure TVentAnalFrm.FormatNombres(Sender: TObject; ACol,ARow: Integer; Rect: TRect; State: TGridDrawState); begin Canvas.Pen.Style := psClear; Canvas.Rectangle(Rect); Canvas.TextOut(Rect.Right - Canvas.TextWidth(Cells[ACol, ARow])-10, Rect.Top, FormatFloat('#,##0',StrtoFloat(Cells[ACol, ARow]))); end;
apparaissent toutes deux dans la cellule.
La cellule n'est donc pas vidée avant le dessin sur le canvas.
Mais quand je double clique sur la cellule pour l'éditer, la valeur formatée disparaît et l'édition se fait sur la valeur initiale.
Avez-vous une solution ?
Partager