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

Langage Delphi Discussion :

Comment insérer des raccourcis-clavier dans une boucle


Sujet :

Langage Delphi

  1. #1
    Membre confirmé Avatar de ddubois
    Profil pro
    Inscrit en
    Février 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 111
    Par défaut Comment insérer des raccourcis-clavier dans une boucle
    Je souhaite ajouter des raccourcis clavier (Ctrl+numéro de 0 à 9) au 10 premiers sous-menu dynamique stockés dans un fichier .ini lu au démarrage de mon appli.
    Pour ce faire, j'utilise la commande suivante dans une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          {Ajouter un raccourci-clavier :}
          NewItem.shortcut := ShortCut(Word('1'),[ssCtrl]); //ex : Ctrl+1
    J'ai donc voulu mettre :

    NewItem.shortcut := ShortCut(Word(IntToStr(I)),[ssCtrl]);

    mais cela génère une erreur. Comment faut-il s'y prendre pour incrémenter la valeur numérique du raccourci ?

    Voici mon code complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        Keys := TStringList.Create;
        for I := 0 to Keys.Count - 1 do
        begin
          NewItem  := TMenuItem.Create(Self);   
          NewItem.Caption := Keys.Strings[i];
          NewItem.Tag := i; 
          NewItem.Hint := FileIni.ReadString('Shortcut', Keys[i], ''); //Stock les chemins dans le Hint de chaque MenuItem !
          mnuShortcuts.Add(NewItem);
          {Ajouter un raccourci-clavier :}
          NewItem.shortcut := ShortCut(Word('1'),[ssCtrl]);
          NewItem.OnClick := mnuEvalAAMClick;
        end;
      end;
    Merci,

    Daniel

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 076
    Par défaut
    Word(IntToStr(I)), qu'est ce que ça fait ? ça transtype une chaine courte constante en word ? ça me parait louche ...

    Je tenterais pour avoir des raccourcis de 0 à 9 par exemple, ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewItem.shortcut := ShortCut(Ord('0') + I,[ssCtrl]);
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé Avatar de ddubois
    Profil pro
    Inscrit en
    Février 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 111
    Par défaut
    ok ca marche pour l'affichage dans le menu !
    Mais par contre aucune réaction lorsque je fais le raccourci-clavier, c'est normal ? Faut-il un traitement particulier ?
    Habituellement c'est automatique, non ?

    Denis

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 076
    Par défaut
    Ben, normalement, cela devrait fonctionner ... j'utilise plus souvent les raccourcis via ALT + ... avec le _ qui indique la lettre que le ShortCut, par manque de pratique, je ne peux pas te répondre ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/04/2012, 09h28
  2. Intégrer des raccourcis claviers dans une JFrame
    Par FistOr dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 18/03/2008, 18h46
  3. Insérer des données Excel dans une base Access ?
    Par MaTHieU_ dans le forum Access
    Réponses: 3
    Dernier message: 22/06/2005, 15h11
  4. Comment spécifier des raccourcis claviers sur une Form ?
    Par Sydaze dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/06/2005, 09h05
  5. [BPW]Raccourcis clavier dans une fenêtre enfant
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 18/02/2004, 20h07

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