Mettre la 1ère lettre en majuscule dans une DBGrid

cs_lilo415 Messages postés 18 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 5 avril 2007 - 12 mars 2007 à 12:25
cs_lilo415 Messages postés 18 Date d'inscription mardi 22 mars 2005 Statut Membre Derniè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??

Merci d'avance pour votre aide.

Lilo

3 réponses

ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
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".

A +
Thierry
0
cs_lilo415 Messages postés 18 Date d'inscription mardi 22 mars 2005 Statut Membre Derniè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.

encore merci

A+
Lilo
0
cs_lilo415 Messages postés 18 Date d'inscription mardi 22 mars 2005 Statut Membre Derniè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

A+
Lilo
0
Rejoignez-nous