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

Langage Delphi Discussion :

Afficher mon programme après réduction


Sujet :

Langage Delphi

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut Afficher mon programme après réduction
    salut

    je fais un tchat et j'aimerais implanter un wizz (comme msn)
    faire trembler c'est pas un problème pour moi ...
    pour le moment, ce qui me bloc c'est d'afficher mon programme par dessus toutes les autres fenêtre : si je suis sur un site, ou alors sur msn ... si on me wizz, le tchat doit apparaître par dessus la fenêtre où j'étais ...

    pour cela j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SetForegroundWindow(form1.handle);
    ça fonctionne parfaitement mais UNIQUEMENT lors de mes testes en local !
    mais ce qui est bizzard, c'est que j'ai testé avec 2 personnes et d'après ce qu'ils m'ont dit, le prog n'apparait pas au desssu de leur autres fenêtres ...

    mais quand ils me wizz ça fonctionne bien ...

    donc j'aimerais savoir pkoi ça fonctionne que sur mon pc ?

    sinon je suis preneur d'une autre solution car ce code à un gros problème : lorsque le tchat est réduit, il ne s'affiche pas, il reste réduit (même chez moi)

    donc en gros ce qu'il me faut, c'est un code qui fonctionnera chez tout le monde et qui fera en sorte que le tchatt s'affiche au dessus de toutes les autres fenêtre (même s'il est réduit)

    je vus remercie d'avance

  2. #2
    Membre averti Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Points : 403
    Points
    403
    Par défaut
    j'ai a peu prés le meme problème, mais uniquement sur des machines sous xp avec le menu démarrer xp alors qu'avec le menu démarrer classique ça marche bien

    je n'ai pas de solution et donc je suis preneur aussi

  3. #3
    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,

    Il faut mettre la propriété "formstyle" de la form à "StayOnTop".
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par Graffito
    Bonjour,

    Il faut mettre la propriété "formstyle" de la form à "StayOnTop".
    ça lair detre une bonne idée : je met StayOnTop et ensuite en normal
    mais ya un prob .. c'est qu'apres je ne peux plus réduire :s

  5. #5
    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,

    Il me semble que "stayontop" est une proprité qui n'a d'effet qu'à la création et qu'on ne peut pas basculer dynamiquement.

    Une idée pour minimiser une form stayontop est de mettre sa propriété "borderstyle" à "fsnone" et au lieu de minimiser la forme, mettre width et height à zéro, et positionner le petit point auquel est réduit la forme dans un coin de l'écran. Puis, faire l'opération inverse, sur l'événement onactivate.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    bah c'est pas normal ...

    parce qu'à la création c'est en mode normal
    ensuite dynamiquement je le met en mode StayOnTop
    mais c'est après que ça déconne : je le remet en mode normal, ok je peux mettre n'importe quoi devant, mais le problème c'est que le boutton réduire ne fonctionne plus

    merci pour ton idée, mais je préfère pas changer le borderstyle :s

    une autre soluss ? :s

  7. #7
    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
    Salut,

    Mais le borderstyle a fsnone, c'est juste lorsque la forme doit disparaître.
    Sinon, tu le remets en normal.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    la form ne disparait pas, elle est juste réduite

    tu comprendras mon problème, regarde :

    ouvre un projet et dans un Ttimer palce ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    procedure TForm1.Timer1Timer(Sender: TObject);
    var x, y:integer;
    begin
     form1.FormStyle := fsstayontop;
     
     randomize;
     x := random(20)-10;
     y := random(5)-10;
     left := left+x;
     top := Top+y;
     Sleep(50);
     Left := left-(x*2);
     top := top-(y*2);
     Sleep(50);
     Left := left+x;
     top := top+y;
     windows.Beep(2000,20);
     form1.FormStyle := fsnormal;
     timer1.Enabled := false;
    end;
    dans l'intervall du timer met 5000 pour avoir 5 sec devant toi à m'exécution du programme

    donc tu l'exécute et VITE (avant 5sec) tu réduits l'aapli grace au bouton "_" du haut (à côté du boutton "X")

    le prog sera donc réduit et après 5 sec le timer le fera monté
    ensuite c'est là le problème ! tu ne pourras plus le réduire de nouveau :s

    c'est ce que je veux réparer ... je veux pouvoir réduire de nouveau si je le souhaite

  9. #9
    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,

    La solution que j'imaginais était la suivante :

    1) créér la forme avec le type fsstayontop, ne plus toucher au formstyle par la suite.

    2) lorsque tu veux minimizer, faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    savetop:=form1.top ; // idem pour left, width, height
    form1.borderstyle:=fbsnone ;
    form1.top:=0 ; form1.left:=0 ;  form1.width:=1 ; form1.height:=1 ;
    la forme reste stayontop, mais elle est alors réduite à un pixel.

    3) lorsque tu veux remettre en avant-plan (par exemple sur l'évenement onactivate), faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    form1.borderstyle:=fbsizeable ;
    form1.top:=savetop ; // idem pour left, width, height
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  10. #10
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    non dsl c'est pas la solution adapté à mon prob :s

    qqun a dautres idées ? c'est bizzard que ça ne fonctionne pas :s

  11. #11
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Citation Envoyé par Coussati
    c'est bizzard que ça ne fonctionne pas :s
    J'ai essayé ton code et ça ne fonctionne pas non plus chez moi.. J'ai le même problème. J'ai essayé de faire des updates dans tous les sens mais Delphi ne veut rien savoir. Je penche pour un bug de la VCL... Ca arrive
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  12. #12
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par Pedro204
    Citation Envoyé par Coussati
    c'est bizzard que ça ne fonctionne pas :s
    J'ai essayé ton code et ça ne fonctionne pas non plus chez moi.. J'ai le même problème. J'ai essayé de faire des updates dans tous les sens mais Delphi ne veut rien savoir. Je penche pour un bug de la VCL... Ca arrive
    pkoi ça n'arrive qu'à moi ! :s
    qu'est ce que je peux faire ? il y a une autre solution ? :s
    une fois affiché le boutton réduire n'est plus fonctionnel :s

    peut être qu'il y a un autre moyen pour affichier la form o premier plan ?

  13. #13
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    J'ai essayé en passant par le TApplication mais ça ne marche pas Je ne sais vraiment pas comment faire... Même en regardant les sources de SetFormStyle de TCustomForm, je n'ai pas réussi
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  14. #14
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    ok merci d'avoir essayé
    d'autres personnes peuvent tester ?

  15. #15
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    ce code n'était pas efficace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://delphi.developpez.com/faq/?page=interexecution#remettreappenavantplan
    car lorsque le prog est réduit, il ne se lève pas

    mais j'ai pensé à ajouter :

    juste avant et donc le prog se maximise (en plan normal) et ensuite il s'affiche en aavnt plant

    merci à tous ceux qui m'ont aidé

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/11/2011, 21h35
  2. Réponses: 1
    Dernier message: 14/10/2011, 18h29
  3. Réponses: 1
    Dernier message: 31/07/2010, 18h33
  4. Mon programme n'affiche rien!!!!
    Par matthieu5978 dans le forum Langage
    Réponses: 1
    Dernier message: 03/11/2005, 11h28
  5. Réponses: 7
    Dernier message: 02/09/2005, 15h15

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