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

Composants VCL Delphi Discussion :

Comment maximiser une fenêtre en bsnone ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai

    Inscrit en
    Août 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 33
    Points : 23
    Points
    23
    Par défaut Comment maximiser une fenêtre en bsnone ?
    Bonsoir à tous...

    J'utilise ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Perform(WM_SYSCOMMAND,SC_MAXIMIZE,0);
    ou celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    postmessage(form1.Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0);
    afin de maximiser une fenêtre sous windows... Je veux absolument passer par windows car je veux que la form soit déclarée comme agrandie par l'os...

    le problème,c'est que cette forme est en borderstyle=bsnone et ne tient pas compte de ma barre de tâches ( elle s'affiche en plein écran derrière celle ci ). J'ai testé avec borderstyle=bssizeable et ca marche très bien... J'ai essayé en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    form1.bordestyle=bssizeable;
    postmessage(form1.Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0);
    form1.bordestyle=bsnone;
    Ca marche pas non plus !!!

    Quelqu'un peut il m'aider ???

    Merci beaucoup.

    DeeTOX.

  2. #2
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 676
    Détails du profil
    Informations personnelles :
    Âge : 44
    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 676
    Points : 7 080
    Points
    7 080
    Par défaut
    Et Application.Minimize; ?

  3. #3
    Membre à l'essai

    Inscrit en
    Août 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 33
    Points : 23
    Points
    23
    Par défaut ca c'est bon !
    'marche impecable !!! Mais je veux la MAXimiser ! lol

    Merci de m'aider.

    DeeTOX.

  4. #4
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Beh:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.Maximize.

  5. #5
    Membre à l'essai

    Inscrit en
    Août 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 33
    Points : 23
    Points
    23
    Par défaut 'marche pas !
    Ca existe pas ca !!! J'ai oublié de dire : j'suis sous delphi 7.0 donc peut être sur d'autres versions mais là, maximise n'existe ni sur tform ni sur application... Peut être me faut il des uses particulier ?

  6. #6
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    alors essaye ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form1.windowstate:=wsMaximized;

  7. #7
    Membre à l'essai

    Inscrit en
    Août 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 33
    Points : 23
    Points
    23
    Par défaut non ...
    Non désolé : ca a le même effet que mes codes...

  8. #8
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    et avec la propriété align en client ?? cela fait quoi ?

  9. #9
    Membre à l'essai

    Inscrit en
    Août 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 33
    Points : 23
    Points
    23
    Par défaut Ca oui mais non...
    Ca fonctionne et c'est mon ancienne solution mais dans ce cas windows n'est pas au courant de l'agrandissement de la fenêtre donc ca va pas... désolé...

  10. #10
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 676
    Détails du profil
    Informations personnelles :
    Âge : 44
    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 676
    Points : 7 080
    Points
    7 080
    Par défaut Re: ca c'est bon !
    Citation Envoyé par deetox
    'marche impecable !!! Mais je veux la MAXimiser ! lol
    J'ai parlé trop vite.

    Par contre, j'ai fais un nouveau projet avec une fichier en BorderStyle := bsNone et un bouton avec cette instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       WindowState := wsMaximized;
    La fenêtre se maximise immédiatement.

  11. #11
    Membre à l'essai

    Inscrit en
    Août 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    et avec ca, windows croit que c'est en plein écran ???

    Nouveau problème au passage avec bsnone : La fenêtre ne réagis pas comme une fenêtre avec bordure ( par exemple, pas d'ombres avec y z shadow ).... Je pense que delphi déclare un truc pas net lorsqu'il ouvre la fenêtre mais quoi...

    Help me please...

  12. #12
    Membre à l'essai

    Inscrit en
    Août 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 33
    Points : 23
    Points
    23
    Par défaut J'ai trouvé !
    CA Y EST !!! J'ai trouvé... Alors, ca peut interesser pas mal d'entre vous alors je le met !!!

    Je récapitule : ce code permet de faire de votre fenêtre une fenêtre sans bordures et sans barre de titre ( type bsnone ) mais qui prend en compte yzshadow, les réduction sur objectdock... bref, elle réagit comme une fenêtre en bssizeable !!! et pour cause :

    Primo : il faut laisser votre fenêtre en bssizeable ( aussi bizarre que ca puisse vous parraitre )

    Secundo : a vos claviers :

    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
     
     
    public
    carre : hrgn;
     
    ...
     
    SetWindowLong(form1.Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not(WS_Border) and not(WS_sizebox));
     
    carre :=   CreateRectRgn(form1.ClientRect.Left+GetSystemMetrics(SM_CXBORDER)+GetSystemMetrics(SM_CXEDGE),
    form1.ClientRect.top+GetSystemMetrics(SM_CYBORDER)+GetSystemMetrics(SM_CYEDGE),
    form1.ClientRect.right-GetSystemMetrics(SM_CXBORDER)+GetSystemMetrics(SM_CXEDGE),
    form1.ClientRect.bottom-GetSystemMetrics(SM_CYBORDER)+GetSystemMetrics(SM_CYEDGE)
     
    );
    setwindowrgn(
    form1.Handle,
    carre,     // handle to window
    true  // window redraw option
    );

    Le principe est simple : on enlève les barres en trop ( titre, sizebox ) de la fenêtre puis avec setwindowrgn, on limitte la région d'affichage de la fenêtre... C'est du bricolage mais ca marche impec !!! J'suis trop content !!! lol


    J'ai galèré pour ca alors si ca peut vous être utile, bonne chance !

    DeeTOX.

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

Discussions similaires

  1. Comment maximiser une fenêtre QMainWindow ?
    Par Damman dans le forum Qt
    Réponses: 3
    Dernier message: 12/12/2009, 19h08
  2. Maximiser une fenêtre JInternalFrame
    Par kaiser2003 dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 13/03/2005, 13h14
  3. [JFrame] Comment ouvrir une fenêtre maximiser
    Par dadg dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 11/12/2004, 18h38
  4. Comment fermer une fenêtre quand la souris et clavier sont inactifs ?
    Par Goldenkiller dans le forum Composants VCL
    Réponses: 7
    Dernier message: 06/12/2004, 22h09
  5. [eclipse][plugin] Comment avoir une fenêtre avec focus
    Par relivio dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 07/04/2004, 15h54

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