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 :

[TForm] Comment interdire le redimmensionnement ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut [TForm] Comment interdire le redimmensionnement ?
    Bonjour,
    J'ai un petit souci avec la fenêtre principale de mon application (FsMDIForm).
    J'aimerai qu'elle ne puisse rester qu'en Plein écran.
    Sa propriété WindowState est bien WsMaximized, BorderStyle est bien en BsSingle et je désactivé dans la propriété BorderIcons BiMaximize.

    Resultat : Sa à l'air d'aller a part que lorsque l'on double click sur sa barre de titre , le fenetre devient toute petite et impossible de la remettre en full-screen. Et lorsqu'elle est en full-screen, bein elle prend tout l'écran meme si la barre des tâches Windows n'est pas en "Masquer automatiquement".

    Donc, le resultat souhaité serait :
    - Aucune modification possible de la taille de la fenêtre en plein-écran (sur zone bureau/client) donc en fonction de si oui ou non la barre des tâches est affichée.

    Merci pour tout.

  2. #2
    Membre confirmé Avatar de JustMe
    Inscrit en
    Juillet 2002
    Messages
    479
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 479
    Points : 593
    Points
    593
    Par défaut
    Peut être que si tu aligne la form à alClient ça la gardera en plein écran toujours.
    <On fait la science avec des faits, comme on fait une maison avec des pierres : mais une accumulation de faits n'est pas plus une science qu'un tas de pierres n'est une maison> **Poincaré**

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Non, ca foire tj.
    Enfin, j'ai plus ou moins trouvé.
    Un peu bourin,mais bon ca marche presque .
    A la création de la fiche, attribuer les valeurs de Screen.WorkAreaRect à Top, left, height, Width de la fiche et mettre borderstyle à bsSingle.

    Ca marche nickel ! à part que si la barre de tâche est masquée automatiquement, on ne peut plus la voir lorsque qu'on met le curseur en bas de l'écran.

    Donc, j'ai du remettre la propriété à BsSizeable .
    Après ca, je devait gérér l'interdiction du redimmensionnement avec l'évenement OnConstrainedResize .
    Sa marche à part que lorsque l'on essaie de redimmensionner la fiche, elle ne se redimensionne pas mais elle se déplace .

    Y a t'il un évenement qui me premetrais de savoir lorsqu'il y a déplacement de la fiche ?

    J'ai essayé dans le OnConstrainedResize en redéfinissant Top et Left , beau petit bug écran

    Ok, j'arrete


    Merci quand même.

  4. #4
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Ha, les ppetit message , tj bien sympa !
    Mais hélas, ne va pas dans mon cas (je commence à devenir chiant, je sais ).
    Pcq qu'il y a déplacement de la fiche non pas quand on fait un glisser sur la barre de titre mais lorsque l'on fait un resize (dans mon cas).

    Si je détermine un valeur à top et left dans la procedure WMSizing, la fiche ca place bien lorsque click sur le bord mais revient au meme endroit lors du "déclick" .

    Merci quand même


    Ps: Je suis le seul à avoir eu ce genre de problème avec les fenêtres ou c'est un problème assez souvent rencontré, pcq là, je me pose des questions

  6. #6
    Membre confirmé
    Avatar de lil_jam63
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 447
    Points : 600
    Points
    600
    Par défaut
    Un petit truc du même style que Nono
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      ...
      Procedure WMSizing(Var Msg: TMessage); message WM_SIZING;
      ...
    procedure TForm1.WMSizing(Var Msg: TMessage);
    begin
      if (windowState = wsMaximized) then
        begin
          Msg.Wparam := 0;
          Msg.Lparam := 0;
        end;
    end;
    Comme ça, une fois que ta fenêtre est en plein écran, plus de redimensionnement possible jusqu'à la fermeture de l'appli.
    PS: pas testé
    ----------------------------------------------------
    Avant de poster, pensez à utiliser les différents outils à votre disposition:
    Google, la FAQ et le moteur de recherche.

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Bon, j'y suis arrive grâce au infos que vous m'avez données

    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
     
    procedure TForm1.WMSizing(Var Msg: TMessage);
    Var
    P : PRect;
    begin
    p:=PRect(Msg.LParam);
    p^.Top    := Top   ;
    p^.Left   := Left  ;
    p^.Right  := Width+Left;
    p^.Bottom := Height+Top;
    end;
     
    Procedure TForm1.WMMoving(Var Mes: TMessage);
    Var p:PRect;
    Begin
      p:=PRect(Mes.LParam);
      p^.Top  := Screen.WorkAreaTop;
      p^.Left := Screen.WorkAreaLeft;
    End;
     
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    R     := Screen.WorkAreaRect;
    Top   := R.Top;
    Left  := R.Left;
    Height:= R.Bottom-R.Top;
    Width := R.Right-R.Left;
    end;
    Et voila, tout roule puisque je peux laisser la propriété BsSizeable qui permetra d'afficher la barre de tâche lorque celle-ci est en "masquer automatiquement".

    Merci à vous tous et bonne soirée.

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

Discussions similaires

  1. Comment interdire la mise en veille d'une machine sous Win ?
    Par Soulama dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 01/08/2005, 15h37
  2. Comment interdire la touche Imprime écran ?
    Par spikto dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 01/08/2005, 10h54
  3. Dbgrid : Comment interdire Suppression de Ligne
    Par Francis dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/11/2004, 08h31
  4. Comment interdire la fermeture d'une fiche empilée ?
    Par psau dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/07/2004, 14h01

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