Mettre la 1ère lettre en majuscule dans une DBGrid
cs_lilo415
Messages postés18Date d'inscriptionmardi 22 mars 2005StatutMembreDernière intervention 5 avril 2007
-
12 mars 2007 à 12:25
cs_lilo415
Messages postés18Date d'inscriptionmardi 22 mars 2005StatutMembreDernière intervention 5 avril 2007
-
12 mars 2007 à 15:35
Bonjour,
J'aurais voulu savoir comment on pouvait mettre la 1ère lettre en majuscule de tous les champs saisis dans un DBGrid.
Est-ce posssible pour tous les champs saisis?? ou est-ce que je dois le faire un par un??
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 12 mars 2007 à 14:17
Bonjour Lilo,
Si c'est une simple question d'affichage dans le dbgrid, voici le principe :
Tu initialises la propriété DefaultDrawing de ton dbgrid à false.
Puis dans l'événement OnDrawColumnCell :
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
S: string;
begin
// récupération de la valeur du champ
S:= dbgrid1.Fields[DataCol].asString;
// 1° lettre en majuscule, le reste en minuscules
S:= AnsiUpperCase(Copy(S,1,1)) + AnsiLowercase(Copy(S,2,Length(S)-1));
// affichage de S
Dbgrid1.Canvas.TextRect(Rect, Rect.Left +2, Rect.Top +2, S);
end;
Ceci ne touche que l'affichage et ne modifie pas la valeur du champ dans la table.
Si le champ = "bonjour", il reste comme tel mais s'affichera "Bonjour".
cs_lilo415
Messages postés18Date d'inscriptionmardi 22 mars 2005StatutMembreDernière intervention 5 avril 2007 12 mars 2007 à 15:18
Bonjour Thierry
Merci pour ta réponse.
Je vais tester comme ça et je te tiens au courant. Par contre il ne s'agit pas que d'une question d'affichage car il faudrait aussi que ça enregistre le changement dans la table, mais je vais tester quand meme on ne sait jamais que ça marche très bien.
cs_lilo415
Messages postés18Date d'inscriptionmardi 22 mars 2005StatutMembreDernière intervention 5 avril 2007 12 mars 2007 à 15:35
Re-Bonjour,
Je viens de tester et c'est vrai que ta solution affiche la 1ère lettre en mauscule. Or pour valider ma dbgrid, je dois avoir un champs (en particulier) qui doit être en majuscule. Donc il faudrait une fonction qui change mon champs dans la table.
Si quelqu'un pourrait m'aider, je vous remercie d'avance