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

Delphi Discussion :

Récupérer le nom d'un bouton par son Caption


Sujet :

Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 116
    Points
    116
    Par défaut Récupérer le nom d'un bouton par son Caption
    J'ai 40 boutons sur ma fiche et j'aimerais pouvoir, avec le clavier inscrire le nom d'un de ceux-ci, disons dans un TEdit, et simuler un click sur celui-ci avec la touche Entrée. Ex: TButton1.caption := 'A1' ; en tapant A1 suivis de Entrée, on déclancherait la procédure: TButton1Click:

    J'ai essayé plusieurs choses mais sans résultats valable. Y a t'il quelqu'un qui pourrait m'aider S.V.P.

    merci

    Duan

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 61
    Points : 47
    Points
    47
    Par défaut
    en utilisant la procedure onkeydown du Tedit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for i:=0 to ComponentCount-1 do
    begin
    if components[i] is tbutton then
    if (components[i] as tbutton).Caption=edit1.Text then
    (components[i] as tbutton).Click;
    end;

  3. #3
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 290
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 290
    Points : 1 941
    Points
    1 941
    Par défaut
    ou la fonction FindComponent

  4. #4
    Membre habitué Avatar de Ludo_360
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 295
    Points : 191
    Points
    191
    Par défaut caption touche =)
    tu peux utiliser le shortcut de ta form principale:

    ensuite tu détermine chaque raccourci de chaque touche:



    procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
    begin

    // appui sur une touche
    //IsShift := GetKeyState(VK_SHIFT) < 0; // Touche Shift appuyée

    case Msg.CharCode of
    Ord('A'): begin ButtonClick(Buttona); Handled:= True; end;
    Ord('B'): begin ButtonClick(Buttonb); Handled:= True; end;
    Ord('C'): begin ButtonClick(Buttonc); Handled:= True; end;
    Ord('D'): begin ButtonClick(Buttond); Handled:= True; end;
    Ord('E'): begin ButtonClick(Buttone); Handled:= True; end;
    Ord('F'): begin ButtonClick(Buttonf); Handled:= True; end;
    Ord('G'): begin ButtonClick(Buttong); Handled:= True; end;
    Ord('H'): begin ButtonClick(Buttonh); Handled:= True; end;
    Ord('I'): begin ButtonClick(Buttoni); Handled:= True; end;
    Ord('J'): begin ButtonClick(Buttonj); Handled:= True; end;
    Ord('K'): begin ButtonClick(Buttonk); Handled:= True; end;
    Ord('L'): begin ButtonClick(Buttonl); Handled:= True; end;
    Ord('M'): begin ButtonClick(Buttonm); Handled:= True; end;
    Ord('N'): begin ButtonClick(Buttonn); Handled:= True; end;
    Ord('O'): begin ButtonClick(Buttono); Handled:= True; end;
    Ord('P'): begin ButtonClick(Buttonp); Handled:= True; end;
    Ord('Q'): begin ButtonClick(Buttonq); Handled:= True; end;
    Ord('R'): begin ButtonClick(Buttonr); Handled:= True; end;
    Ord('S'): begin ButtonClick(Buttons); Handled:= True; end;
    Ord('T'): begin ButtonClick(Buttont); Handled:= True; end;
    Ord('U'): begin ButtonClick(Buttonu); Handled:= True; end;
    Ord('V'): begin ButtonClick(Buttonv); Handled:= True; end;
    Ord('W'): begin ButtonClick(Buttonw); Handled:= True; end;
    Ord('X'): begin ButtonClick(Buttonx); Handled:= True; end;
    Ord('Y'): begin ButtonClick(Buttony); Handled:= True; end;
    Ord('Z'): begin ButtonClick(Buttonz); Handled:= True; end;
    vk_space: begin btnSpaceClick(btnSpace); Handled:= true; end;
    vk_shift: begin btnshiftClick(btnshiftd); Handled:= true; end;
    vk_back: begin pnl_returnClick(pnl_return); handled:= true; end;
    else
    showmessage('touche non répertoriée'); handled:= true;

    end;
    end;
    En utilisant le raccourci clavier ce sera plus rapide qu'avec les fonctions OnKeyDown et autres, donc tu récupère ta touche entrer par exemple.

  5. #5
    Membre régulier
    Inscrit en
    Mai 2003
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 146
    Points : 116
    Points
    116
    Par défaut
    Merci à tous !!!

    J'ai pris la solution de DvArrel, simple et efficace. J'avais essayé avec la fonction findcomponent mais je m'était complètement perdu.
    Je garde en mémoire(écrite) la solution de Ludo360; Elle réagit rapidement à l'appui d'une touche mais peut-on combiner + d'une touche avec cette solution Ex: A1 (touches A+1).

    Même si je repose une question supplémentaire, je marque ce post comme résolu car ma demande initiale l'est; je vérifirai quand même sur celui-ci pour voir s'il y a de nouveau développements.

    encore une fois mercif

    Duan

  6. #6
    Membre habitué Avatar de Ludo_360
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 295
    Points : 191
    Points
    191
    Par défaut combinaisons connues
    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.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
    begin
     
    // appui sur une touche
    //IsShift := GetKeyState(VK_SHIFT) < 0; // Touche Shift appuyée
     
    case Msg.CharCode of
    if not IsShift then  // la touche shift n'est pas appuyée
       Ord(5): begin ButtonClick(Buttonparenthèse_ouvrante); Handled:= True;
     end else
       Ord(5): begin ButtonClick(Button5); Handled:= True;  
    else
    showmessage('touche non répertoriée'); handled:= true;
     
    end;
    end;

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

Discussions similaires

  1. [XML] Récupérer la valeur d'un champ par son nom
    Par Portekoi dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 06/07/2012, 13h43
  2. [AC-2003] Récupérer la Lettre d'un lecteur par son nom de volume
    Par vversaveau dans le forum VBA Access
    Réponses: 1
    Dernier message: 29/07/2010, 12h33
  3. Réponses: 2
    Dernier message: 24/11/2008, 10h53
  4. Modifier le nom d'un bouton par macro
    Par COCONUT2 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 19/06/2007, 11h19
  5. Récupérer le nom de la base ou son db_id dans un T-Sql
    Par Labienus dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/11/2005, 09h15

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