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

API, COM et SDKs Delphi Discussion :

Minimize Maximize perso sur une form autre que Application


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Minimize Maximize perso sur une form autre que Application
    Comment faire pour réaliser un traitement spécifique sur le minimize ou le maximize d'une form ? la form n etant pas la form principale

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 17
    Points : 11
    Points
    11
    Par défaut Dernier appel
    Dernier appel pour la question precedemment posée...
    Y a t il une solution possible ?
    Si il n'y en a pas, que quelqu'un me previenne ...
    merci d'avance

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 119
    Points : 125
    Points
    125
    Par défaut
    Désolé mais comprends pas la question

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    OnResize?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    vous pouvez utiliser le message "WMSysCommand" pour vous créer des événements OMinimize, OnMaximize etc..


    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
     
    private
     
    procedure WMSysCommand(VAR Message: TWMSysCommand); message WM_SYSCOMMAND;
     
    implementation
     
    procedure TFGridMdiForm.WMSysCommand(var Message: TWMSysCommand);
    var
      AIconButtonUsed: Boolean;
      ASetChildActive: Boolean;
    begin
      ASetChildActive := False;
      if (((Message.cmdtype and $FFF0)= SC_RESTORE) or
          ((Message
     
     
          .cmdtype and $FFF0)= SC_MAXIMIZE)or
          ((Message.cmdtype and $FFF0)=  SC_MINIMIZE))  then begin
        FMaster.EnabledchildnotActive(False);
        ASetchildActive := (Message.cmdtype and $FFF0) <> SC_MAXIMIZE;
      end;
      AIconButtonUsed := ((Message.cmdtype and $FFF0)= SC_RESTORE) or
               ((Message.cmdtype and $FFF0)= SC_MAXIMIZE);
       Içi déclencher votre événement
      end;
      inherited; // Inherited pour que le message soit traiter
    end;

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Il suffit de connaître l'handle de la form que l'on souhaite traîter.
    La solution la plus simple selon moi, est de vérifier l'état de IsIconic et IsZoomed.

    Exemple, j'éxécute NotePad et je récupère son handle.
    Puis je fais la comparaison de l'état dans un timer :
    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
    Var
      MyHandle: Hwnd;
      mini, maxi: Boolean;
     
    {----------------------------------------------------------------}
    Procedure TForm1.FormCreate(Sender: TObject);
    Begin
      ShellExecute(Handle, '', 'Notepad.exe', '', '', 1);
      Sleep(500);
      MyHandle := GetForeGroundWindow;
      FormStyle := fsStayOnTop; 
    End;
     
    {----------------------------------------------------------------}
    Procedure TForm1.Timer1Timer(Sender: TObject);
    Begin
      If (mini <> IsIconic(MyHandle)) Or
         (maxi <> IsZoomed(MyHandle)) Then
      Begin
        MessageBeep(0);
        mini := IsIconic(MyHandle);
        maxi := IsZoomed(MyHandle);
        If (mini) Then
          Label1.Caption := 'La fenêtre est minimisée'
        Else If (maxi) Then
          Label1.Caption := 'La fenêtre est maximisée'
        Else
          Label1.Caption := 'La fenêtre est restaurée';
      End;
    End;
     
    {----------------------------------------------------------------}
    End.
    A noter que l'on peut aussi obtenir les dimensions de cette fenêtre avec GetWindowRect.


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

Discussions similaires

  1. Utiliser MDIParent autre que sur une form?
    Par Programming-Z dans le forum C#
    Réponses: 1
    Dernier message: 07/06/2012, 12h10
  2. comment passer d une form à autre sur le meme projet
    Par sat05 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/09/2008, 13h07
  3. Réponses: 3
    Dernier message: 16/01/2006, 16h02
  4. Réponses: 1
    Dernier message: 15/08/2005, 19h38
  5. Comment spécifier des raccourcis claviers sur une Form ?
    Par Sydaze dans le forum Composants VCL
    Réponses: 5
    Dernier message: 17/06/2005, 09h05

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