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 :

Activer désactiver application


Sujet :

Langage Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut Activer désactiver application
    Bonjour,

    Cela fait un petit moment que je cherche mais je ne trouve pas..
    Je souhaite passer dans le onActivate de ma form quand ma souris est sur mon application, sans forcément cliquer dessus.
    Et passer dans le onDeActivate quand la souris n'est plus sur mon application.

    Pouvez vous m'aider ?

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 787
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 787
    Points : 13 442
    Points
    13 442
    Par défaut
    Regarde OnMouseEnter, OnMouseLeave.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci j'ai rajouté les évènements sur mon panel et cela fonctionne.

    Le problème c'est que j'ai un bouton sur mon panel et quand je vais dessus je rentre dans le onMouseLeave de mon Panel

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 612
    Points : 25 303
    Points
    25 303
    Par défaut
    Faudrait voir avec la WndProc ou un OnMessage pour écouter la souris en amont !
    Il est vrai une propriété MousePreview manque comme la KeyPreview

    Voir aussi un Hook mais c'est un peu plus lourd comme technique

    Tu peux mettre dans les OnMouse* du TButton le même gestionnaire que celui du Panel
    Sender te permettra de savoir si c'est le Panel ou le Bouton

    On a eu un sujet en 2012 sur un MouseMove qui remontait au parent, je ne le retrouve pas

    Essaye un TSpeedButton, c'est un GraphicControl, avec un peu de chance, il ne provoquera pas de OnMouseLeave

    Sinon, utilise GetCursorPos\Mouse.CursorPos et ControlAtPos, tu pourras savoir si le Parent du TButton est ton Panel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure OnMouseLeave(Sender);
    begin
      if Sender = MonFameuxPanel then
      begin       
        if MonFameuxPanel.Parent.ControlAtPos(MonFameuxPanel.Parent.ScreenToClient(Mouse.CursorPos)) <> MonFameuxPanel then
          Je suis vraiment dehors
      end;
    end;
    ControlAtPos ne cherche QUE les enfants directs !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. activer/désactiver la compression GZIP des pages
    Par iubito dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 20/08/2008, 21h35
  2. Activer / désactiver des périphériques
    Par adage2000 dans le forum MFC
    Réponses: 3
    Dernier message: 28/04/2005, 16h51
  3. Réponses: 5
    Dernier message: 22/12/2004, 16h50
  4. [pywin32] Activer/Désactiver compte Active Directory
    Par Dimontviloff dans le forum Bibliothèques tierces
    Réponses: 1
    Dernier message: 01/12/2004, 17h30
  5. Bouton d'activation/désactivation de tooltips
    Par bigboomshakala dans le forum MFC
    Réponses: 2
    Dernier message: 26/04/2004, 08h54

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