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

Delphi Discussion :

Fenêtre vraiment stay-on-top


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Points : 48
    Points
    48
    Par défaut Fenêtre vraiment stay-on-top
    Bonjour à tous,
    là, je craque ... j'ai essayé un peu tout ce que j'ai pu trouver sur le net mais rien ne marche...
    Je voudrais avoir une fenêtre stay on top sur une fenêtre principale même en mode plein écran. Jusqu'à présent, tout ce que j'ai pu obtenir, c'est l'affichage fugitif de la seconde fenêtre avant que la fenêtre principale ne reprenne le dessus.
    Comment procéder, sachant que j'ai à ma disposition le handle des deux fenêtres.

    Merci d'avance,

    Robert

  2. #2
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    Salut,

    Que veux-tu dire lorsque tu parles du mode plein écran ?

    Merci pour tes précisions

  3. #3
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Bonjour,

    Normalement si tu ouvre ta fenêtre avec ShowModal elle reste toujours au premier plan...Mais tu ne pourra plus cliquer sur une autre fenêtre tant que celle-ci sera ouverte.

    Sinon pour créer une sorte de "palette" j'avais utiliser une astuce qui consistait à créer dynamiquement une fenêtre à partir de ta fenêtre principale...
    Ainsi ta fenêtre secondaire est un élément comme un autre de ta fenêre principale et restera toujours au-dessus d'elle jusqu'à ce que tu la ferme. Et l'intéraction entre les deux fenêtre est possible.

    @+.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 488
    Points : 397
    Points
    397
    Par défaut
    Bonjour,

    Ce fil me fait pensé à un problème qui m'arrive parfois : si une fenêtre est affichée en ShowModal puis que l'on bascule vers une autre application, il arrive dans certaines conditions, que lorsque l'on revient que la fenêtre en ShowModal se retrouve derrière la fenêtre mère qui du coup a l'air figée (un simple alt-tab résoud le problème, mais tous les utilisateurs ne le savent pas). Ce comportement m'est déjà arrivé avec des applcations développées par Microsoft, mais j'ai l'impression que c'est plus fréquent avec les applications compilées avec Delphi. Quelqu'un connait une solution ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    Merci à tous pour ces réponses qui ont déjà pour premier effet de se sentir moins seul...
    Pour préciser mon problème (et le compliquer, bien sûr!), la fenêtre "fille", si on peut l'appeler comme ça, n'est pas modale. En effet, à l'arrière plan, l'application principale poursuit sa vie et en fait cette fenêtre fille affiche des informations extraites de l'appli principale.
    Pour être tout à fait complet, l'application hôte est une application du commerce (MS Flight simulator pour ne pas le citer) à laquelle je m'interface via une dll. Ce qui est à ma disposition (outre les valeurs à afficher), c'est le handle de la fenêtre de cette appli...

    Aucun pb en mode fenêtré, ça marche "nickel" suivant le mot à la mode...
    En mode plein écran, ma fenêtre boude et reste obstinément derrière la fenêtre de FS...

    Encore merci,

    Robert

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    ces réponses qui ont déjà pour premier effet de se sentir moins seul...
    J'ai déja eu ce problème avec une appli kylix/linux, mais ca se passait bien pour la même appli en Delphi/windows.

    Mais les 2 fenêtres de mon appli étaient stayontop et les autres appli lancées simultanément n'étaient pas stayontop. l

    L'origine du problème est peut-être que FlightSimulator est aussi stayontop.

  7. #7
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    Essaye ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var MonRect : Trect;
    begin
      GetWindowRect(Form1.Handle,Monrect);
    
      SetWindowPos(Form1.Handle ,
                    HWND_TOPMOST,      // c'est ca qui fait tout
                    MonRect.left,
                    MonRect.top,
                    MonRect.Right - MonRect.Left,
                    MonRect.Bottom - MonRect.Top,
                    SWP_SHOWWINDOW);
    

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    J'y cours... Merci!

    Robert

  9. #9
    Membre habitué Avatar de jambonstar
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 161
    Points
    161
    Par défaut
    Alors ?

    Ca fonctionne ?

    C'est surement assez proche du code caché derriere la property FormStyle classique. Mais j'aimerai quand même savoir si ca fonctionne.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    Bonjour jambonstar,

    je n'ai pas pu y courir aussi vite que je l'aurais voulu....

    J'ai essayé ce matin, et ça ne fonctionne pas. Dommage, mais merci quand même, c'est très sympa d'avoir passé du temps à essayer de me déplanter.

    Il y a forcément une solution, puisque qu'il y a déjà des programmes qui fonctionnent, mais impossible de trouver quelqu'un qui ait résolu ce problème...

    Si je trouve, je le ferais savoir...

    A bientôt,

    Robert

  11. #11
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    SAlut
    Du coté de ta Dll fourni avec le jeux n'aurais tu pas une function qui te permete de faire ca, pour demander au jeu d'autoriser ta fenetre en 1er plan. Si je dis ca c que je pense a msn messenger, c un peu different tu vas me dire, mais tu as une option qui te permet de choisir si les fenetres msn qui souvrent, doivent venir s'afficher meme si tu as une appli en plein ecran.

    Peut etre aussi une autre piste, j'ai deja utilisé SetWindowPos et je crois me souvenir que chaque fenetre a une sort de poids, un classement dans une liste, si ton jeux et plus haut dans cette, ton prog ne s'affichera jamais.
    Et a mon avis le jeux en question doit veillé a toujours rester en haut de cette liste... ca rejoins le faite qu'il doit y avoir une option dans la Dll
    Peut etre qu'avec SetWindowPos tu peut la forcé a descendre.. mais ca risque de faire du flicker, si le jeu la remet en tete a chaque fois, ca va pas etre propre.
    Bon courrage
    A++

Discussions similaires

  1. Deux Fenêtres décalées avec pourtant un "Top" identique
    Par Droïde Système7 dans le forum Débuter
    Réponses: 6
    Dernier message: 12/05/2010, 15h30
  2. outil pour figer firefox ou chrome (stay on top)
    Par zenzo dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/11/2009, 22h14
  3. Le Top Hat, c'est quoi vraiment ?
    Par ghassen_ing dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 31/01/2008, 17h15
  4. Comment obtenir une fenêtre Stay-On-Top ?
    Par k_boy dans le forum Langage
    Réponses: 3
    Dernier message: 27/12/2007, 15h32
  5. Position d'une fenêtre sur l'écran (left, top)
    Par Daimonji dans le forum MFC
    Réponses: 9
    Dernier message: 18/12/2005, 14h57

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