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 :

Positionner la souris sur le bouton OK d'un showmessage


Sujet :

Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut Positionner la souris sur le bouton OK d'un showmessage
    Bonjour à tous,

    Ma question est dans le titre, connaissez vous un moyen de positionner
    la souris au milieu du bouton OK sur un showmessage.

    Sur un bouton présent sur une fiche ,j'utilise la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Mouse.CursorPos := Bouton.ClientToScreen(Point(Bouton.Width div 2,Bouton.Height div 2));
    mais je ne vois pas comment proceder sur le boutton d'un showmessage ou d'un messagedlg ?

    Merci

    -------------------------------------------------------------
    Delphi 7.1 / SQL Server 7 & 2000 / Windows NT & 2000
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

  2. #2
    Membre à l'essai
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Salut Pitango...

    Tu l'as surement constaté, mais un ShowMessage() ou un MessageDlg() s'affiche toujours au centre de l'écran (pas au centre de ton appli !).

    Donc en gardant le même principe de ta fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Mouse.CursorPos := Point( (Screen.Width div 2) + PosX, (Screen.Height div 2) + PosY );
    Mais attention :

    1 - Le(s) bouton(s) ne se situe pas exactement au centre de l'écran (c'est la boite de dialogue qui est centrée) donc il faut que tu ajuste la position avec "PosX" et "PosY" pour avoir le pointer de la sourie au centre du bouton voulu.

    2 - Suivant la longueur du message à afficher ou le nombre de boutons (dans le cas d'un MessageDlg), les positions des boutons ne seront pas les mêmes !

    3 - Si tu ne connais pas le contenu du message à afficher, il te serra très difficile de trouver la position exacte du bouton ( ou sinon avec une petite fonction de calcul selon la taille et le type de message! ).

    Pour ma part, je ne vois pas d'autre moyen.
    Bonne prog.

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 731
    Points : 15 136
    Points
    15 136
    Par défaut
    un ShowMessage() ou un MessageDlg() s'affiche toujours au centre de l'écran
    Méfiance ! Il y a des exemples sur le web qui montrent qu'on peut parfaitement faire afficher ce genre de dialogue un peu où l'on veut (en interceptant des messages) !
    Mes 2 cts,
    --
    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

  4. #4
    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 simuler la validation du dialogue en avec la touche Entrée plutôt, ce sera plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SendMessage(0, WM_KEYDOWN, VK_RETURN, VK_RETURN); 
    ou bien
    SendMessage(0, WM_KEYUP, VK_RETURN, VK_RETURN);
    De retour parmis vous après 10 ans!!

  5. #5
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Pour information (peut etre ce que celà ne conviendra pas).
    Dans le panneau de configuration / Souris / Options du pointeur il y a une case à cocher :

    "Déplacer automatiquement le pointeur sur le bouton par défaut dans la boite de dialogue."


    Bien entendu ce n'est pas une solution "Delphi" mais parfois on cherche une solution par programmation uniquement parce qu'on ne pensait pas qu'il y avait une autre possibilitée.

    A+

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    Merci à tous pour vos réponses, je vais expérimenter vos différentes solutions.

    Je vous tiens au courant.

    A+
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

  7. #7
    Membre confirmé Avatar de WebPac
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 947
    Points : 512
    Points
    512
    Par défaut
    J'ai une autre solution.
    Sur tu as les sources des composants, tu récupères le code source du ShowMessage et tu intègres le code mis en premier message dedans.

    Le code du ShowMessage n'est pas très compliqué.
    J'ai fait ainsi pour personnaliser les MessageDlg.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 158
    Points : 158
    Points
    158
    Par défaut
    Bonsoir,

    Merci encore à tous pour votre aide.

    Je vais dans un premier temps utiliser la solution de jula2i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Mouse.CursorPos := Point( (Screen.Width div 2) + PosX, (Screen.Height div 2) + PosY );
    sachant que dans mon environnement cible les boites de dialogues s'afficheront bien au centre de l'écran

    Dans un second temps je regarderai du coté des sources comme le préconise WebPac.

    Pour la solution hors delphi de Barbibulle, je n'ai pas la possibilité de la mettre en oeuvre, mais je la garde de coté pour la proposer une autre fois.

    Du coté de la touche entrée (sub 0), ce n'est pas exactement ce que je fais à faire , mais merci pour ton aide.

    A+
    Pitango
    -------------------------------------------------
    [Delphi7.1 Entreprise][MYSQL 5.0.27][SQL SERVER 7][W2000/NT4]

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

Discussions similaires

  1. [XL-2007] Positionner la souris sur un option button
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/09/2009, 12h14
  2. Contour coloré au passage de la souris sur un bouton
    Par jep33 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 28/11/2008, 09h28
  3. Positionner la souris sur un contrôle.
    Par curt dans le forum VBA Access
    Réponses: 3
    Dernier message: 07/09/2008, 20h58
  4. Simulation d'un click de souris sur un bouton ReyCommand
    Par Chatbour dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 28/07/2007, 09h53
  5. Position souris sur un bouton
    Par had182 dans le forum MFC
    Réponses: 5
    Dernier message: 14/01/2006, 11h41

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