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 :

Pb de focus et de tabulation


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 69
    Par défaut Pb de focus et de tabulation
    Bonjour

    Je suis en train de développer une application MDI dont les fenêtres filles sont créées dans une DLL. Ca marche plutôt bien pour ce qui est de la création mais la gestion du focus et de la tabulation ne semble pas marcher. Pour ce qui est de la tabulation, lorsque je tabule, le focus part je ne sais où... J'aurais cependant besoin de le faire marcher car les fenêtres correspondent pour la plupart à des écrans de saisie.

    Je vous remercie d'avance de votre aide.

    Frédéric Mirande

  2. #2
    Membre chevronné
    Avatar de Manopower
    Inscrit en
    Décembre 2003
    Messages
    516
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 516
    Par défaut
    Bonjour, je ne pense pas que ton problème d'ordre de tabulation vienne du fait que tu sois dans une application MDI ou tes fenêtres soient dans une DLL.

    As-tu vérifier l'ordre de tabulation de des composants ?

    - Soit en vérifiant leurs propriété TabIndex
    - Soit en utilisant le menu Edition > Ordre de tabulation.

    Bon courage !

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 69
    Par défaut
    L'ordre des tabulations est renseigné et bon. J'utilise la méthode "CreateParented" avec comme paramètre un panel de mon appli MDI. Est-ce que mon problème ne viendrait pas de ça ? Ca serait pas drôle car c'est la seule méthode que j'ai trouvé pour créer correctement mes fenêtres filles...

  4. #4
    Membre chevronné
    Avatar de Manopower
    Inscrit en
    Décembre 2003
    Messages
    516
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 516
    Par défaut
    Citation Envoyé par Mirande
    L'ordre des tabulations est renseigné et bon. J'utilise la méthode "CreateParented" avec comme paramètre un panel de mon appli MDI. Est-ce que mon problème ne viendrait pas de ça ? Ca serait pas drôle car c'est la seule méthode que j'ai trouvé pour créer correctement mes fenêtres filles...
    Veux tu dire que tes fenêtres filles ne sont pas libres mais créées dans un panel qui lui est posé dans ta fenêtre mère MDI ???
    Si c'est le cas, et sauf incompréhension de ma part sur ton projet, ton application n'est pas une application MDI.

    l'ordre de tabulation prend en compte un control "conteneur" (un panel par exemp) comme un seul control, il faut vérifier l'ordre de tabulation aussi à l'intérieur de ce conteneurn ordre qui est propre au conteneur. Pour ce faire il faut cliquer sur le panel et faire ensuite edition > ordre de tabulation.

    Mais je cherche toujours à comprendre pourquoi tu utilise createParented... Quel est ce problème de fenêtre fille ? Peut-être pouvons nous tirer ça au clair avant d'aller plus loin

    Bon courage !

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 69
    Par défaut
    Mes fenêtre sont effectivement créées dans un panel de mon appli MDI.

    Pour être plus précis, les fonctionnalités de mon appli sont ajoutées à partir de DLLs situées dans un dossier bien précis. Mon IHM est construite dynamiquement à partir de ces DLLs. Une dll peut contenir une ou plusieurs "fenêtre fille". Le seul lien qui existe entre l'appli principale et les dlls est le panel passé en paramètre.

    Mon appli et les dlls sont codées dans un groupe de projet unique. Ceci me permet de partager certains fichiers et de faire hériter mes "fenêtre fille" de la classe de fenêtre de l'appli principale.

    Tu dois me trouver un peu torturé comme mec mais le concept de dynamiser et d'abstraire les choses au maximum me plait bien.

    Merci de ton aide

  6. #6
    Membre chevronné
    Avatar de Manopower
    Inscrit en
    Décembre 2003
    Messages
    516
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 516
    Par défaut
    Citation Envoyé par Mirande
    Tu dois me trouver un peu torturé comme mec


    Je suis pas là pour juger et je n'en ai pas la compétence !

    Donc nous avons une application NON MDI, si j'ai bien compris (une fiche principale avec un panel dedans et un createParented pour créer les autres fiches, ça donne pas une MDI. ta fenêtre principale n'a pas le style FsMDIForm ?

    enfin ça ne résouds pas notre suchi, as tu vérifié que les tab indexs soient bien "groupés" ?

    je m'explique, il y a sur ta fiche 2 panels avec chacun 2 edit et 1 bouton et 2 autres boutons hors panels, tu dois avoir les tab index suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Panel1.tabindex:=0;
      Edit1.tabindex:=0;
      Edit2.tabindex:=1;
      Button1.tabindex:=2;
    Panel2.tabindex:=1;
      Edit3.tabindex:=0;
      Edit4.tabindex:=1;
      Button2.tabindex:=2; 
    Button3.tabindex:=2; 
    Button4.tabindex:=3;
    Comprends tu ce que j'ai essayé de démontrer là ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 69
    Par défaut
    Ma fenêtre principale a le style fsMDIForm, je suis parti d'un projet MDI pour cette application.
    Pour ce qui est des index de tabulation, ils sont bien "groupés".

    Je pense que mon problème est plutôt lié à la façon de créer mes fenêtres. Je vais tenté de m'orienter vers d'autres méthodes.

    Bonne journée

  8. #8
    GO
    GO est déconnecté
    Membre confirmé Avatar de GO
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 114
    Par défaut
    Les fenêtres filles sont elles incluses dans la fenêtre principale ou peux tu les sortir du cadre ? Et peux-tu nous donner le code de ton appel de DLL avec les paramètres de ta fonctions (panel ???) ?

    A+ 8)

  9. #9
    Membre éclairé

    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Par défaut
    C'est a cause de delphi.
    le bug exact : quand tu tabules, tu te retrouves dans l'éxécutable au lieu de rester dans la fenêtre MDI.
    Si les fenêtres sont modales pas de problème. C'est que ce cas précis.
    Ce bug existe depuis la version 5 de delphi.
    J'ai fait une appli comme toi les fenêtres filles en DLL.
    Par contre, il y a un bug tres génant et que tu ne peux pas modifier les fontes des controles type Edit, qui te fait planter ton application sur la fermeture de la fenêtre.
    les instructions as et is explosent
    a part ça, ça marche bien

  10. #10
    Membre éclairé

    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Par défaut
    Il faut juste prendre le code source de delphi 4
    et le mettre sur l'évènement Application.EventsIdle.
    Pour que la tabulation fonctionnent avec tes fenêtres MDI

Discussions similaires

  1. Tabulation / focus entre plusieurs TextBox
    Par LANGAZOU dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/01/2015, 14h20
  2. Déplacement de focus et Tabulation
    Par jlm22 dans le forum VB.NET
    Réponses: 9
    Dernier message: 13/04/2011, 10h55
  3. Focus par l'utilisateur(rice) : ACCESSKEY vs tabulation
    Par Hibou57 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/07/2007, 12h44
  4. Touche tabulation et focus
    Par Pico10 dans le forum Windows
    Réponses: 2
    Dernier message: 27/03/2006, 15h26
  5. focus en C
    Par killpilot dans le forum C
    Réponses: 8
    Dernier message: 19/04/2002, 19h19

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