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 :

Ouvrir une nouvelle fenêtre et la rendre sensible au premier clique


Sujet :

Composants VCL Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 402
    Points : 300
    Points
    300
    Par défaut Ouvrir une nouvelle fenêtre et la rendre sensible au premier clique
    Bonjour,
    j'ai une appli en Delphi XE2, avec Form1 en fenêtre principale et Form2 une fenêtre qui est ouverte par une action dans Form1.
    Form2 ne peut pas être modale.
    Je voudrais que lorsque Form2 s'est ouverte, si je clique sur un bouton de Form2, il soit actif au premier clique alors qu'il ne l'est qu'au second.
    J'ai essayé avec Form2.SetFocus après le Form2.show, avec BringtoFtront, ça ne fonctionne pas.
    J'ai aussi vérifié que l'événement OnActivate de Form2 partait bien.
    J'ai aussi ajouté Form2.Button1.setFocus dans Form2.OnActivate, pas de résultat.
    L'idéal serait que le fait de survoler une fenêtre avec la souris lui donne le focus...

    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 460
    Points : 24 874
    Points
    24 874
    Par défaut
    Form1 est créé par CreateForm dans le DPR, je suppose !
    Form2 est créé par un Create dans le code de Unit1 ou pas un CreateForm dans le DPR

    Utilises-tu une variable locale pour Form2 ou la globale déclarée dans Unit2 ?
    Attention à la confusion des instances !

    Une fenêtre lors de son affichage prend forcément le Focus, surtout si elle contient un TButton ou un TBitBtn, pas contre avec un TSpeedButton, il y a peux-être une différence !

    Je ne comprends pas, si tu as un bouton dans Form2, si c'est le Bouton qui a le Focus, on considère que la fenêtre parente possède aussi le Focus (la barre de titre change de couleur)

    Pour le survol, OnMouseEnter, OnMouseLeave sont parfait pour cela !
    Il y a aussi TrackMouseEvent mais en XE2, le OnMouseLeave est plus efficace qu'en D6, à ce que j'ai cru comprendre
    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 averti
    Homme Profil pro
    Ingénieur développement en retraite
    Inscrit en
    Juin 2002
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement en retraite
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2002
    Messages : 402
    Points : 300
    Points
    300
    Par défaut
    Les deux Forms sont créées dans le DPR

    J'utilise la variable globale de l'unit2.

    Form2 lorsqu'elle est affichée a déjà une forme de focus parcequ'en particulier les Hints des boutons s'affichent.
    En refaisant des manips je crois avoir trouvé d'où viens le pb :
    Si je lance le show de Form2 et qu'elle n'est pas visible, fonctionnement correct elle s'affiche et prend le focus.
    Si elle est affichée, que je reprend la main sur Form1 que je provoque à nouveau le show de Form2 c'est là qu'elle ne s'active qu'au second clique.
    J'ai essayé de OnMousEnter de Form2, il ne se déclenche pas !
    Je vais essayer le TrackMouseEvent

Discussions similaires

  1. [C#][Débutant]Ouvrir une nouvelle fenêtre en fermant l'ancienne
    Par neuromencien dans le forum Windows Forms
    Réponses: 3
    Dernier message: 21/04/2011, 09h20
  2. Réponses: 17
    Dernier message: 31/08/2006, 14h50
  3. ouvrir une nouvelle fenêtre dans une taille déterminé
    Par lnikolanta dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 26/09/2005, 15h26
  4. Ouvrir une nouvelle fentre en grand ?
    Par Sylk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/09/2005, 13h14
  5. [ShellExecute] ouvrir une nouvelle fenêtre ie
    Par sony351 dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/11/2004, 18h39

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