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 :

SetFocus sur un TTabSheet


Sujet :

Composants VCL Delphi

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2012
    Messages : 14
    Points : 8
    Points
    8
    Par défaut SetFocus sur un TTabSheet
    Bonjour,

    C'est encore moi. J'ai une question:

    Est-ce qu'un SetFocus() sur un TTabSheet correspond à un clic souris sur un TTabSheet ?

    Il y a déjà des sujets traitant du SetFocus sur TTabSheet, mais c'est toujours par rapport à un TEdit.

    Mon application pilote des sites Internet via des TWebBrowsers posés sur des onglets TTabSheet. J'aimerais que lorsque l'utilisateur presse une certaine touche du clavier l'onglet suivant est affiché. Ceci marche. J'utilise l'événement onKeyPress.

    Mais, si l'utilisateur clique sur un des sites Internet, je perds le focus des onglets et les événements onKeyPress ne sont plus capturés. J'ai vu que si je clique sur l'onglet, il est de nouveau actif et mes captures de touches fonctionnent. Seulement je ne veux pas devoir aller cliquer sur l'onglet pour l'activer. J'ai donc pensé à SetFocus().

    Mais rien ne se passe. Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TTabSheet(tabSheets.Items[PgcMain.ActivePageIndex]).SetFocus();
    Comme vous pouvez le voir, j'ai des onglets dans un TList nommé tabSheets. Normalement avec ce code, ça devrait me mettre le focus sur mon onglet actuel. D'où ma question initiale:
    Est-ce qu'un SetFocus() sur un TTabSheet correspond à un clic souris sur un TTabSheet ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,

    Et en essayant plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //TTabSheet(tabSheets.Items[PgcMain.ActivePageIndex]).SetFocus();
    PgcMain.ActivePageIndex := tabSheets.ItemIndex;
    Je suppose que la TListBox et le TPageControl trie à l'identique pour l'un, les Items (nom des TTabsSheet) et pour l'autre, les pages (les TTabSheet).
    --
    Philippe.
    Philippe.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2012
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Merci pour la réponse.

    J'ai peur de ne pas bien comprendre. Je n'ai pas de TListBox ici, mais un TList (liste contenant des TObjects). Dans mon application, cette TList contient mes onglets. Ces onglets sont créés dynamiquement c'est pour ça que je les stocke dans un TList.

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Citation Envoyé par -dyla- Voir le message
    Bonjour,
    Mais, si l'utilisateur clique sur un des sites Internet, je perds le focus des onglets et les événements onKeyPress ne sont plus capturés.
    Quelle est la valeur de la propriété KeyPreview de ta fiche ?
    Si elle est à False, bascule la à True, pour continuer à intercepter les événements clavier.

    @+

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2012
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Je bien mis KeyPreview à True. Mais est-ce qu'elle peut changer en cours de route ?

  6. #6
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par -dyla- Voir le message
    Mais est-ce qu'elle peut changer en cours de route ?
    Non aucune raison à cela.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2012
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    D'accord.

    Il faudrait juste que j'arrive à faire l'équivalent d'un clic sur l'onglet en cours en code.

  8. #8
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par -dyla- Voir le message
    J'ai peur de ne pas bien comprendre. Je n'ai pas de TListBox ici, mais un TList (liste contenant des TObjects).
    Au temps pour moi, j'ai mal lu la phrase ! Toutes mes excuses...
    Citation Envoyé par -dyla- Voir le message
    Dans mon application, cette TList contient mes onglets. Ces onglets sont créés dynamiquement c'est pour ça que je les stocke dans un TList.
    Eh bien, ce n'est guère plus compliqué, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Supposons que c'est le 3° objet (le 3° onglet créé dynamiquement) que l'on veut activer
    PgcMain.ActivePage := TTabSheet(tabSheets.Items[2]);
    --
    Philippe.
    Philippe.

  9. #9
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2012
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Bonjour.

    Non, ceci ne fonctionne malheureusement pas. Finalement, j'utilise la fonction getasynckeystate qui me permet de capturer n'importe quelle touche n'importe où.

    Merci pour vos réponses.

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

Discussions similaires

  1. [VBA-E] SetFocus sur TextBox dans UserForm_Initialize ne fonctionne pas ?
    Par Jipété dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 27/11/2006, 11h39
  2. SetFocus sur la valuer d'un sous-formulaire ?
    Par Raphs dans le forum IHM
    Réponses: 2
    Dernier message: 05/12/2005, 18h51
  3. SetFOcus sur un contrôle d'une autre feuille d'un multipage
    Par MacGeol dans le forum VB 6 et antérieur
    Réponses: 29
    Dernier message: 07/09/2005, 09h37
  4. [VB6] SetFocus sur une MSHFlexGrid
    Par jlvalentin dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 13/01/2005, 15h22
  5. [débutant] setfocus sur un TextField
    Par k-reen dans le forum Composants
    Réponses: 2
    Dernier message: 29/06/2004, 16h21

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