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 :

Fenetre style Barre de tache


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut Fenetre style Barre de tache
    Bonjour,
    je souhaiterai créer une fenetre dans le style de la barre de tache de windows, ce que je veux dire c'est que ma fenêtre doit normalement etre placer à droite de l'écran et rester par dessus toute autre application.
    Donc si on maximize une fenêtre par exemple celle-ci ne doit pas passer par dessus ma fenêtre.

    je pense à un truc du genre redéfinire la zone de travaille de l'écran, ou zone accessible.

    le problème c'est que je ne trouve vraiment pas la solution

    Donc si quelqu'un a comprit mon probleme et qu'il peut m'aider ca serait génial .

    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 81
    Par défaut
    J'aurais éventuellement une solution, mais c'est un peu moche a mettre en place. Il y a surement plus facile.

    Je pensais à, dans ton appli, créer un hook qui intercept les messages de redimentionnement ou déplacement de fenetre. Et quand tu intercept ce message tu en profite pour redimentionner ladite fenetre pour qu'elle ne passe pas par dessus la tienne.

    Mais comme je l'ai dit, c'est pas évident. Pour faire un hook qui intercept les messages des autres applis tu es obligé de créer une dll qui contiendra le code de ton Hook et tu devra enregistrer ton hook au démarrage de ton appli... en gros c'est l'horreur.

    J'espère que quelqu'un a une solution plus facile a te proposer, sinon je verrai si je peux te guider un peu sur cette voie

  3. #3
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    C'est une AppBar que tu cherches à faire, non ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  4. #4
    Expert confirmé
    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 : 62
    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
    Par défaut
    Salut,

    Tout d'abord bienvenu sur developpez.com !

    J'utiliserais pour cela la fonction fonction API SystemParametersInfo.
    Tu récupères tout d'abord la dimension actuelle de ta zone de travail, puis tu la diminue de la largeur de ta fenêtre située à droite de l'écran.

    Donc dans le Create de ta fenêtre par exemple, tu mets le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var
      InitialRect, NewRect: TRect;
     
    procedure TForm1.Create(Sender: TOject);
    begin
      if SystemParametersInfo(SPI_GETWORKAREA,0,@InitialRect,0) then
      begin
        // Redéfinition du la zone de travail
        NewRect := InitialRect;
        NewRect.Right := InitialRect.Right - Width; 
        SystemParametersInfo(SPI_SETWORKAREA,0,@NewRect,0);
      end;
    end;
    A la fermture de cette fenêtre tu restitues la zone de travail initiale en appelant de nouveau SystemParametersInfo avec InitialRect.

    @+ Claudius.

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 81
    Par défaut
    ^^En effet , Nettement plus facile et plus propre

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut
    Alors pour commencer:
    MERCI à tous pour votre aide ,ca fait chaud au coeur (j'en rajoute pas c'est vrai lol)

    Pour hy00ga :
    je vois que tu es encore plus barbar que moi je pensais pas que ca existait

    Pour Claudius40 :
    Ca marche niquel merci beaucouppppppppp!
    Mais un petit probleme quand même (en fait 2) :
    Quand je démarre mon appli, la zone qui devrait être occupée par ma Form est vide, et am forme donc est placer contre le bord de la nouvelle zone de travail (huu du mal a m'éxpliquer moi)
    mon autre probleme c'est que lorsque je j'essai de remettre les parametres par défauts pour remettre la zone de travaille a l'état initial ca ne marche pas, en fait plus j'essai, plus la place se voit réduite, je me retrouve donc avec un tout petit morceau d'écran pour le moment

    En tout cas je vous remerci énormément !

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut
    Ok problême résolu, j'aurai aps du poster si vite, merci encore

  8. #8
    Expert confirmé
    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 : 62
    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
    Par défaut
    Re,

    En fait la solution que je t'ai indiquée n'est pas forcément la meilleure !
    Comme le précise Lung, il faudrait peut-être mieux s'orienter vers une AppBar.

    Lung a peut-être des infos précise à ce sujet.
    Je vais moi-même jeter un coup d'oeil et te tiens au courant.

    @+

  9. #9
    Expert confirmé
    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 : 62
    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
    Par défaut
    Ah résolu !!

    Et si tu as dejà une fenêtre maximisée à l'écran à l'ouverture de ta fenêtre !!

    @+

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut
    Qu'est ce que c'est exactement une AppBar?
    je devine a peu près avec le nom mais si vous avez des précision, ca convidenrait peut-etre mieux à mon projet...

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

Discussions similaires

  1. Titre fenetre dans barre de tache
    Par GSXRider dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/09/2008, 12h49
  2. fenetre sans barre des taches et autres
    Par christools7 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/09/2007, 10h56
  3. VB6]cacher une fenetre dans la barre des taches en une icone
    Par bouazza92 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 26/12/2005, 23h37
  4. [Plugin][VE]pourquoi la fenetre est dans la barre des taches
    Par voyageur dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/06/2005, 08h59
  5. Fenetre dans barre des taches windows
    Par BOUBOU81 dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/08/2004, 11h23

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