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 :

Forcer l'affichage d'un Hint !


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 604
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 604
    Par défaut Forcer l'affichage d'un Hint !
    Bonjour à toutes et à tous,

    Je modifie une application de D3 à D6 qui permet d'afficher un Tlabel à l'endroit de l'heure dans la TrayIcon.

    J'ai donc F1 qui est l'application qui lance F2 dans la TrayIcon et qui permet d'afficher F3.

    Sur F2, j'ai un Tpanel et un Tlabel

    En cliquant sur ce Tlabel (F2), j'affiche une autre fiche (F3)

    Dans ma fiche (F1), j'ai une fonction et procédure :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    function TrayIconWindowHandle: HWnd;
    var
      trayHWnd: HWnd;
     
    begin
     
      trayHWnd := FindWindow('Shell_TrayWnd', nil);
      result := FindWindowEx(trayHWnd, 0, 'TrayNotifyWnd', nil);
    end;
     
     
    procedure TFormtray.creation_control;
    var
      Tray_taille, taille2: Trect;
      larg, haut: integer;
    begin
      GetWindowRect(donne_Hdle_Clock, Tray_taille);
      GetWindowRect(TrayIconWindowHandle, taille2);
      if donne_Trayform = 0 then
      try
        Trayform := TTrayform.CreateParented(TrayIconWindowHandle);
        Trayform.ParentWindow := TrayIconWindowHandle;
     
        Trayform.show;
      except; end;
      larg := Tray_taille.right - Tray_taille.left ;
      haut := Tray_taille.bottom - Tray_taille.top -5;
      MoveWindow(Trayform.handle, Tray_taille.left - taille2.left -2,
        Tray_taille.top - taille2.top +2, larg,
        haut, true);
     
    end;
    Dans la fiche (2) qui est dans la TrayIcon, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TTrayForm.FormCreate(Sender: TObject);
    begin
    panel1.Cursor := 1;
    panel1.hint:= Formatdatetime('"Nous sommes le" dddd dd/mm/yyyy"', now);
    end;
    A ce stade si je clique sur le Tlabel de F2, F3 est appellé, j'ai le curseur sur F2 qui est visible et le Hint aussi.

    Par contre si F3 n'est pas affiché, j'ai toujours le curseur sur F2 qui est visible mais pas le Hint.

    Donc comment forcer cet affichage du hint sur F2 même si F3 n'est pas affiché.

    Si quelqu'un a une idée, merci d'avance.

    @+,

    Cincap

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 090
    Par défaut
    Tu superposes une fenêtre directement dans la Barre via les Handles !
    C'est bien pour bricoler ça !

    Utilise plutôt les Barres de Notification !
    Shell_NotifyIcon et un balloon notification via NIIF_INFO

    Ensuite Application.ActivateHint(PM) pourrait te plaire
    PM est le retour de GetCursorPos (voir si ClientToScreen ou l'inverse est nécessaire)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 604
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 604
    Par défaut
    Bonsoir à toutes et à tous,

    @ ShaiLeTroll, en effet c'est peut être du bricolage mais je devais afficher une autre heure avec réglages de la couleur du fond, du texte plus la fonte et la taille.

    En cliquant dessus on affiche un calendrier vocal avec recherche du jour en fonction de la date et le calcul de l'écart entre deux dates.

    Avec le composant que tu cites et que je connais, je pense que je n'aurai pas pus le réaliser.

    Ceci étant dit, je déleste ce topic.

    @+,

    Cincap

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/11/2007, 12h31
  2. Forcer l'affichage d'un TForm
    Par All Jinx dans le forum Langage
    Réponses: 2
    Dernier message: 25/08/2005, 14h35
  3. [glut] forcer l'affichage au premier plan
    Par khayyam90 dans le forum OpenGL
    Réponses: 7
    Dernier message: 19/07/2004, 14h37
  4. [stringgrid] forcer l'affichage de la VscrollBar
    Par qi130 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 10/11/2003, 14h03
  5. Forcer l'affichage des dizaines...
    Par pataluc dans le forum Langage
    Réponses: 4
    Dernier message: 26/11/2002, 19h38

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