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

API, COM et SDKs Delphi Discussion :

Rendre application active


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Par défaut Rendre application active
    Bonjour,

    Je ne sais plus comment on fait et je me sent bête...

    J'ai une appli qui ouvre une fenêtre (ShowModal) qui demande de réintroduire un mot de passe après une période d'inactivité sur le PC.

    Je voudrais que cette fenêtre soit active et que le champ mot de passe recoive le focus.

    Hors:
    - Application.bringToFont ou MainF.BringToFront ou PasswordD.BringToFront placent bien l'appli ou la fenêtre au dessus des autres.

    - SetFocus donne bien le focus au champ voulu.

    Mais si une autre appli était active avant, elle reste active.

    Comment donner le statut actif à la fenêtre Password de mon application ?

    Je trouve même pas sur internet.

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 937
    Billets dans le blog
    6
    Par défaut
    pê faut-il lui envoyer le message WM_SYSCOMMAND (de tête...) qui va bien (cad le même que quand on clique sur le bouton de la takkbar)
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Par défaut
    Citation Envoyé par tourlourou Voir le message
    pê faut-il lui envoyer le message WM_SYSCOMMAND (de tête...) qui va bien (cad le même que quand on clique sur le bouton de la takkbar)
    Il y a aussi WM_ACTIVATE, mais aucun des deux ne fonctionne...j'ai du louper quelque chose...

    Dans le FormShow j'ai mis ceci:
    Application.BringToFront;
    Application.MainForm.BringToFront;
    PasswordE.SetFocus; ==> Le TEdit pour rentrer le mot de passe
    SendMessage(FMain.Handle, WM_SYSCOMMAND, 0, 0);
    ou
    SendMessage(FMain.Handle, WM_ACTIVATE, 0, 0);

    J'ai aussi essayer de mettre le Handle de l'appli, c'est toujours pareil...Ca ne change rien...

    Si je met SendMessage(PasswordD.Handle, WM_SYSCOMMAND, 0, 0); PasswordD.Handle = le handle de la fenetre dialogue mot de passe il y a une erreur Violation d'accès.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Par défaut
    J'ai trouvé un truc qui marche, c'est pas trop vraiment propre, mais ca fonctionne:

    Dans le FormShow du Dialogue Password:

    Application.MainForm.FormStyle:=fsStayOnTop;
    Application.BringToFront;
    Application.MainForm.FormStyle:=fsNormal;
    PasswordE.SetFocus;

    Ca m'ennuye quand même, parce que la MainForm se redessine, même si elle est visible et du coup, ca clignote un peu.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 45
    Par défaut
    Voici la bonne méthode si cela peut servir à quelqu'un...

    Application.Restore; //pour réafficher l'application si elle a été minimisée
    SetForeGroundWindow(Application.MainForm.Handle); //Rend l'application active et donne le focus éventuellement à une fenêtre modale

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

Discussions similaires

  1. [VBA-E]ordre d'affichage des applications actives
    Par potili2 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/03/2007, 15h27
  2. Comment obtenir la sélection de l'application active?
    Par javamaniac dans le forum Windows
    Réponses: 1
    Dernier message: 22/12/2006, 22h17
  3. Rendre application standalone utilisable sur le Web ?
    Par Amnesiak dans le forum Général Java
    Réponses: 27
    Dernier message: 14/09/2006, 15h09
  4. donner le focus sur la fenetre d application active
    Par nick974 dans le forum Delphi
    Réponses: 1
    Dernier message: 02/07/2006, 12h11
  5. coordonnées écran de l'application active
    Par Fabrice ROUXEL 1 dans le forum Windows
    Réponses: 2
    Dernier message: 19/05/2006, 19h26

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