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 :

ShowMessage au premier plan


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Points : 72
    Points
    72
    Par défaut ShowMessage au premier plan
    je commande des applications par l'intermédiaire de Delphi, comment faire pour que mes mesages d'alertes type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    showmessage(inttostr(integer(hndltrouve)))
    soient affichés à coup sur au premier plan?
    merci
    JP

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 60
    Points : 56
    Points
    56

  3. #3
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Tu peux utiliser la fonction CreateMessageDialog() avec sa méthode ShowModal(). Il existe aussi la propriété sStayOnTop qui permet de garder une fenêtre au 1er plan... Voici un exemple issu de la faq :
    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
    var i:integer;
         FicheMessage:TForm;
    begin
      // on crée la fiche de dialogue à la main 
      FicheMessage:=CreateMessageDialog('Ma boite de dialogue', mtWarning,[mbYes,mbNo,mbIgnore]);
     
      // pour chaque bouton de la fiche ainsi crée on change (si on le souhaite) son modalresult et son caption
      for i := 0 to FicheMessage.ComponentCount - 1 do
      if ( FicheMessage.Components[i] is TButton ) then
      with ( FicheMessage.Components[i] as Tbutton ) do
      begin
        //on change ici selon son humeur, la valeur déjà présente dans Caption, etc..
        //Caption := ... ;
        //ModalResult := ...;
        If Caption=SMsgDlgYes then Caption:='Ouais !';
      end;
     
      //On montre la boite de dialogue
      FicheMessage.ShowModal;
      FicheMessage.Release; //on libère la mémoire occupée par la fiche
    end;
    De retour parmis vous après 10 ans!!

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Points : 72
    Points
    72
    Par défaut
    me reste plus qu'à dire "merci"
    Jean Pierre

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Points : 72
    Points
    72
    Par défaut
    après moulte essais, avec
    .show
    .showmodal
    .sStayOnTop
    aucun n'est fiable à 100% (tout dépend des traitments en cours par d'autres logiciels.
    n'y a t il pas une façon d'obtenir le premier plan à coup sûr?
    pour l'instant, je suis obligé de jouer avec la Form et son Handle, mais c'est ssez lourd.
    Jean Pierre

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 726
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Salut !
    Un jour j'ai trouvé ça, qui a l'air de fonctionner :
    To make a form always visible above other forms either belonging to the
    same application as well as other applications, we can change the
    FormStyle property to fsStayOnTop. Later we can switch back to
    normal by setting FormStyle to fsNormal. However, changing the FormStyle
    property at runtime isn't recommended. Instead, we should use the
    Windows API function SetWindowPos, passing it HWND_TOPMOST as the second
    parameter to activate the effect:

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0,
    SWP_NOMOVE + SWP_NOSIZE);
    end;

    To deactivate this effect, we call SetWindowPos again, this time passing
    it WND_NOTOPMOST as the second parameter:

    procedure TForm1.Button2Click(Sender: TObject);
    begin
    SetWindowPos(Handle, HWND_NOTOPMOST, 0, 0, 0, 0,
    SWP_NOMOVE + SWP_NOSIZE);
    end;
    À voir,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Points : 72
    Points
    72
    Par défaut
    avec ça, c'est bon.
    merci!
    Jean Pierre

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    salut,

    perso j'utililse ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    windows.MessageBox (GetForegroundWindow,PChar(monmessage),PChar('titre'),0);
    Ca marche pas mal.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/06/2008, 20h00
  2. petit problème premier plan, arrière plan
    Par gros bob dans le forum OpenGL
    Réponses: 4
    Dernier message: 19/04/2004, 12h00
  3. Réponses: 2
    Dernier message: 14/03/2004, 22h04
  4. Premier plan sur un dialog
    Par |PaRa-BoL dans le forum MFC
    Réponses: 5
    Dernier message: 04/03/2004, 12h52
  5. forcer une fenetre à etre au premier plan jusqu'a ...
    Par peppena dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 22/12/2003, 16h14

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