IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

[0.9.31] StringGrid.Columns[x].Title.Caption et & [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [0.9.31] StringGrid.Columns[x].Title.Caption et &
    Bonjour,

    Les & ne semblent pas fonctionner dans le titre des colonnes des StringGrids aussi bien en les définissant par code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stgrPR.Columns[2].Title.Caption:='&Code';
    que par l'Inspecteur d'Objet :


    Je m'y prends mal ? Je suppose que tous les captions fonctionnent de la même façon et traduise les "&" par un soulignement de la lettre suivant le "&".

    Cordialement. Gilles

  2. #2
    Membre émérite Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Par défaut
    Bonjour

    Apparemment, cela ne fonctionne pas sur un TStringGrid. Idem avec Delphi 2005...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour Patrick,

    C'est désopilant parce que si on demande un "showmessage(StringGrid.Columns[x].Title.Caption);", le caractère suivi par & est bien souligné dans la réponse... Cela n'a pas une importance considérable.

    J'ai laissé un message sur le bug tracker avec mon 'broken english'.

    Cordialement. Gilles
    Dernière modification par Invité ; 03/06/2011 à 21h06.

  4. #4
    Membre émérite Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Par défaut
    Citation Envoyé par selzig Voir le message
    C'est désopilant parce que si on demande un "showmessage(StringGrid.Columns[x].Title.Caption);", le caractère suivi par & est bien souligné dans la réponse... Cela n'a pas une importance considérable.

    J'ai laissé un message sur le bug tracker avec mon 'broken english'.
    Je ne sais pas si c'est un bug. Normalement l'insertion du caractère & dans un contrôle permet d'activer un raccourci clavier. Cela tombe sous le sens pour l'item d'un menu, d'un popup ou d'un bouton. Mais je n'en vois pas l'utilité sur un TLabel (il l'affiche !) et encore moins dans le texte d'un ShowMessage...

    Attendons de voir ce qu'ils en disent du côté du Bugs Tracker.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Dans le cas présent cela indique que les touches Alt+c et Alt+d sont fonctionnelles et cela donne le focus à des TEdits placés au dessus des colonnes concernées, TEdits qui s'adaptent au positionnement et à la taille de ces dernières.

    Il est vrai qu'on est habitué à la souris, mais dans le cas présent, le logiciel est entièrement pilotable au clavier donc les combinaisons sont multiples. Il suffit de regarder les caractères soulignés aux bons endroits sur l'écran pour immédiatement les retrouver en cas d'oubli. Et là, le bon endroit, c'est le titre de la colonne. Evidemment on peut contourner le problème, en "incrustant" un TCaption à la place (quoiqu'un titre vide est automatiquement remplacé par un "Title")... ou en plaçant un beau Alt+C comme dans les menus (mais ici ma colonne n'est pas assez large)...

    Un simple TLabel possède cette propriété '&' et en elle-même, cette pratique ne sert qu'à cela (à indiquer)... parce qu'en ce qui me concerne, le pilotage au clavier n'a aucun rapport avec les '&' : j'utilise les KeyPress et Up/Down pour cela. Il y aurait une autre méthode (hormis pour les Tmenu si on renseigne leurs ShortCuts) ? Alors compte tenu de l'usage du '&', pourquoi ne s'appliquerait-il pas au titre d'une colonne de StringGrid ?

    Comme je l'ai écrit, c'est contournable et mineur comme problème.
    Cordialement. Gilles

    PS :
    1. Pour la réponse, je ne m'attends pas à grand chose : "Si Delphi ne le fait pas..." même si je conteste évidemment, en pure perte probablement : Il faut en revenir à la question première. Quelle est la fonction du '&' et pour quelle finalité ? A partir de là, on sait quels champs sont succeptibles de posséder cette propriété de soulignement. Le titre des colonnes des StringGrids en fait partie. Quoique... Dans les TMenus, le '&' pose un problème identique (&Quit donne Quit dans le Caption de Iinspecteur d'Objet mais simplement "Quit" dans le menu lui-même...).
    2. Pour le showmessage, c'était simplement pour savoir où est le problème. Vous remarquerez que dans l'Inspecteur d'Objet, le '&' est correctement traduit (cf l'image). Le showmessage montre que la chaîne est correctement transmise au moment de la construction de la StringGrid. Le seul problème est que le Title.Caption de Columns[x] ne possède pas cette fonction de traduction.
    Dernière modification par Invité ; 04/06/2011 à 11h27.

  6. #6
    Membre émérite Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Par défaut
    Citation Envoyé par selzig Voir le message
    Comme je l'ai écrit, c'est contournable et mineur comme problème.
    Tout à fait, en quelques lignes de codes: (vite fait, à optimiser sans doute... )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; aCol, aRow: Integer;
      aRect: TRect; aState: TGridDrawState);
    begin
      With Sender as TStringGrid do
        if (aRow=0) and (Cells[aCol, aRow]<>'') and (Cells[aCol, aRow][1] = '&') then
            begin
              Canvas.FillRect(aRect);
              Canvas.Font.Style:=[fsUnderline];
              Canvas.Brush.Style:=bsClear;
              Canvas.TextOut(aRect.Left+3, aRect.Top+3, Cells[aCol, aRow][2]);
              Canvas.Font.Style:=[];
              Canvas.TextOut(aRect.Left+3+Canvas.TextWidth(Cells[aCol, aRow][2]),
                             aRect.Top+3, Copy(Cells[aCol, aRow], 3, 255));
              Canvas.Brush.Style:=bsSolid;
            end;
    end;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Data too long for column 'title' at row 1
    Par Jolt0x dans le forum Débuter
    Réponses: 2
    Dernier message: 16/06/2014, 20h36
  2. [DisplayTag] Title pour display:column contenant checkbox pour tout sélectionner
    Par Slyders dans le forum Taglibs
    Réponses: 1
    Dernier message: 06/05/2010, 15h21
  3. StringGrid sort
    Par clovis dans le forum C++Builder
    Réponses: 4
    Dernier message: 20/10/2004, 21h46
  4. Multi lignes dans un StringGrids ?
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/11/2002, 23h15
  5. StringGrid et colonnes
    Par Delph dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/08/2002, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo