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 :

Barre des taches.


Sujet :

Langage Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Points : 104
    Points
    104
    Par défaut Barre des taches.
    Bonjour,

    Je n'arrive plus à mettre la main sur la fonction qui donne la hauteur active de la barre des tâches ...

    Merci à celui ou celle qui me guidera à cette fonction.

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    GetSystemMetrics
    .

    [edit]
    ou mieux SHAppBarMessage.

  3. #3
    Membre éclairé Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Points : 790
    Points
    790
    Par défaut
    Bonjour

    Voili voilà... (Testé sous Seven)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function TaskBarHeight: integer;
    var
      hTB: HWND; // taskbar handle
      TBRect: TRect; // taskbar rectangle
    begin
      hTB:= FindWindow('Shell_TrayWnd', '');
      if hTB = 0 then
        Result := 0
      else begin
        GetWindowRect(hTB, TBRect);
        Result := TBRect.Bottom - TBRect.Top;
      end;
    end;

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Avec SHAppBarMessage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    var
      AppBarData: TAppBarData;
    begin
      SHAppBarMessage(ABM_GETTASKBARPOS, AppBarData);
      with AppBarData.rc do
        ShowMessage(Format('Left: %d, Top: %d, Right: %d, Bottom: %d',
          [Left, Top, Right, Bottom]));
    end;
    Dès fois qu'elle ne soit pas située en bas comme d'habitude.

    @+

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 266
    Points
    3 266
    Par défaut
    Bonjour,

    Autre possibilité : (testé sous D5)

    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
    function  HBarreWindows : integer; // Hauteur barre de tâches Windows
    var       r : TRect;
    begin     SystemParametersInfo(SPI_GETWORKAREA,0,@r,0);
              result:=screen.height - r.bottom;
    end;
     
    procedure TForm1.FormShow(Sender: TObject);
    begin     label1.caption:='Hauteur de la barre de tâches : '+intToStr(HBarreWindows);
    end;
     
    procedure TForm1.btnAfficherClick(Sender: TObject);
    begin     ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_RESTORE); //Afficher barre des tâches
    end;
     
    procedure TForm1.btnCacherClick(Sender: TObject);
    begin     ShowWindow(FindWindow('Shell_TrayWnd', nil), SW_HIDE); //Cacher barre des tâches
     
    end;
    A+.

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 764
    Points : 13 386
    Points
    13 386
    Par défaut
    Connaître la hauteur de la barre de tâches a peu d'intérêt en soi. Je ne connaît pas l'applicatif, mais J'aurais tendance à dire que le raisonnement est inverse et que c'est en fait la zone utile qui est intéressante et ceci pour plusieurs raisons:

    - Il est très facile de créer une AppBar qui réduira d'autant la surface utilisable mais qui ne sera pas prise en compte par les fonctions précitées.
    - La Taskbar est sur l'écran principal. En multi-écrans, soustraire systématiquement cette valeur serait une erreur.

    Il est très facile de connaître la zone utile par moniteur à travers les propriétés WorkAreaXXX des TMonitor.
    Et comme le dit justement Cl@udius, la barre de tâches (ou tout autres AppBar) n'est pas forcément située en bas d'écran

  7. #7
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Points : 104
    Points
    104
    Par défaut
    Et ben en voilà des réponses ...

    En fait j'ai une application qui, quand elle s'ouvre, chasse momentanément la barre des tâches, qui se réinstalle lorsque l'application se développe.

    Mais j'avais un soucis, c'était que cette appli initialement était réalisée pour un écran 1024 x 768.
    Depuis j'ai poursuivi sont développement sur des écrans plus grands sans faire plus gaffe. Lorsque je l'ai essayée sur un écran petit format, ben la barre des tâche était recouverte par l'application.
    Les écrans inférieurs à 1024 x 768 étaient réajustés pour sont déroulement puis restitués ensuite. Donc là pas de soucis.

    En fait j'ai résolu le problème très simplement ... je cherche les dimensions de l'écran et si je trouve 768 en hauteur, je réduis la hauteur de mon application lorsqu'elle se déroule de la hauteur traditionnelle de la barre des tâches.

    En tous cas toutes vos solutions me laissent entrevoir d'autres possibilités.

    SHAppBarMessage que je ne connaissais pas me plait beaucoup et rejoint la remarque judicieuse de Andnotor.

    Merci à tous.

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

Discussions similaires

  1. cacher la barre des taches window
    Par Flash2004 dans le forum MFC
    Réponses: 9
    Dernier message: 19/04/2004, 10h47
  2. Hauteur de la barre des taches
    Par wasch dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/11/2003, 11h59
  3. Icone/bouton dans la barre des taches...
    Par dynobremo dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 28/02/2003, 12h05
  4. [VB6] [Système] Barre des taches
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/10/2002, 15h16
  5. desactiver la barre des taches
    Par naili dans le forum C++Builder
    Réponses: 7
    Dernier message: 02/09/2002, 17h57

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