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

Composants VCL Delphi Discussion :

Comment basculer le focus depuis une autre form ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 251
    Points : 85
    Points
    85
    Par défaut Comment basculer le focus depuis une autre form ?
    Salut à tous,

    J'ai une petite question qui trouvera surement reponse sur ce forum si grandiose

    J'ai un Tform que l'on va appeler Form1 par exemple qui contient un tas de Tpanel + TLabel ... etc
    Elle appelle un Tform que l'on va appeler Form2 ! cette form2 est un clavier visuel que je pilote à l'aide d'un ecran tactile !

    Sur ce clavier se trouve la touche "Tab" comme les vrai et j'aimerai qu'en cliquant sur cette touche virtuelle, le focus de la form1 bascule sur un autre panel (le suivant) et qu'on simule le click de ce panel (le click va appeler une procedure de form2 qui rafraichi certaine données du clavier virtuel.

    en gros pour eviter de saisir un paramétre, fermer le clavier, ouvrir le clavier pour saisir un autre paramétre ... et ainsi de suite, je voudrai depuis le clavier virtuel passer d'un paramétre à un autre grâce au bouton "Tab" !

    Merci d'avance à celui qui m'aidera



    en gros

  2. #2
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    à mon avis ça doit etre facilement faisable en faisant form1.labelx.setfocus

    tu peux retrouver le composant suivant dans l'ordre de tabulation par la propriété TabOrder du composant

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    Salut

    pour simuler le tab sur la fiche form1, tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        SendMessage(Form1.Handle, WM_KEYDOWN, VK_TAB, 1);
        SendMessage(Form1.Handle, WM_KEYUP, VK_TAB, 1);
    Fox

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 251
    Points : 85
    Points
    85
    Par défaut
    le Form1.labelx.setfocus ne m'interesse pas, je ne connais pas le nom des composant qui sont sur ma form, uniquement le sender qui appel le clavier + le parent principale du sender à savoir la form1 dans notre exemple par contre le sendmessage qui simule la pression d'une touche est pas mal pour la suite

    merci à vous deux, si quelqu'un à une autre idée :

  5. #5
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    tu ne connais pas les noms de tes composants mais tu peux les trouver par Form1.Components...

    Quoiqu'il en soit, le code de Fox_magic est plus simple ...

  6. #6
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 120
    Points
    120
    Par défaut
    Salut,

    le plus simple pour passer d'un élément à un autre est bien sûr d'utiliser la méthode de Fox_Magic...

    à condition toutefois que le TabOrder ait été défini correctement... sinon tu n'auras pas du tout ce que tu veux... le TabOrder permet en effet de s'affranchir du nom du composant...

    Tu peux mettre un compteur incrémenté et agir sur le Tag des composants aussi...

    @+

  7. #7
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Autre solution, demander à la fiche d'aller sur le suivant à partir du control en cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1.FindNextControl(Form1.ActiveControl,True,False,False);

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 251
    Points : 85
    Points
    85
    Par défaut
    ok merci pour tout les mecs

  9. #9
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 670
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 670
    Points : 7 022
    Points
    7 022
    Par défaut
    Citation Envoyé par altahir007
    ok merci pour tout les mecs
    Si ton problème est résolu, n'oublie pas d'ajouter le tag [RÉSOLU].

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 251
    Points : 85
    Points
    85
    Par défaut
    j'ai pas encore testé merci j'y penserai !

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/08/2007, 18h07
  2. Comment acceder au control d'une form depuis une autre form?
    Par UnSofteuxAmateur dans le forum Windows Forms
    Réponses: 11
    Dernier message: 05/07/2007, 12h18
  3. Réponses: 11
    Dernier message: 17/10/2006, 17h55
  4. [VB.NET] Comment recuperer de donnée sur une autre form?
    Par weelo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 02/04/2006, 13h47
  5. Réponses: 3
    Dernier message: 16/01/2006, 16h02

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