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

Access Discussion :

Comment savoir si un formulaire est minimisé [AC-2013]


Sujet :

Access

  1. #1
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Comment savoir si un formulaire est minimisé
    Bonjour à tous!

    La question est dans le titre: j'ai un formulaire d'alarmes diverses dans mon appli. Pour favoriser l'ergonomie, je permets sa mise en icone. Pour qu'il garde sa fonction d'alarme, sur timer, je lance une procédure qui:

    1. Si le formulaire est minimisé: (comment faire ce test ?)
    2. le rafraîchir (me.requery)
    3. Restaurer sa taille (docmd.restore)


    Voilà çà semble trivial, mais je n'ai pas trouvé de réponse dans la FAQ ou sur le forum. (à moins que je m'y soie mal pris )

    Merci de vos réponses
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  2. #2
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    Salut...
    comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     If CurrentProject.AllForms("NomDeTonFormulaire").IsLoaded Then
     MsgBox "OPEN"
     Else
     MsgBox " CLOSED"
     End If
    ++

  3. #3
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Comment savoir si un formulaire est minimisé
    @james68

    Merci James de ta réponse, mais mon but n'est pas de savoir si mon formulaire est ouvert, mais de déterminer s'il est en icone ou pas.

    Bonne journée!
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    OUPS... je n'avais pas saisi la subtilité.
    Cependant je ne pense pas qu'il y a une possibilité de savoir si il est en icone ou non...
    je jette un coup d’œil cet am , si je trouve je poste...
    ++

  5. #5
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Comment savoir si un formulaire est minimisé
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Bonjour,

    Pas sûr qu'il y ait d'autre moyen que l'API User32 :

    A déclarer dans un module (ou dans le formulaire si lui seul utilise ça, et dans ce cas on peut passer les fonctions de Public en Private) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #If VBA7 Then
    Public Declare PtrSafe Function IsIconic Lib "user32" Alias "IsIconic" (ByVal hwnd As LongPtr) As Long
    #Else
    Public Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long
    #End If
    Code pour le test : Sélectionner tout - Visualiser dans une fenêtre à part
    If IsIconic(Me.Hwnd) Then

  7. #7
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Comment savoir si un formulaire est minimisé
    Merci Arkham46,

    Je teste çà et reviens vers vous...
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  8. #8
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Comment savoir si un formulaire est minimisé
    J'obtiens en faisant ma déclaration dans le formulaire ou dans un module le même message d'erreur:

    Nom : erreur.png
Affichages : 98
Taille : 24,7 Ko
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  9. #9
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Si c'est un module, cela doit être un module standard et non pas un module de classe.

    Si c'est dans le formulaire, il faut (j'avais dit "on peut" mais c'est plutôt "il faut") passer les déclarations en Private au lieu de Public.

  10. #10
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Comment savoir si un formulaire est minimisé
    @Arkham46,

    OK, autant pour moi !!

    En faisant la déclaration au sein d'un module, çà fonctionne avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Declare PtrSafe Function IsIconic Lib "user32" (ByVal hwnd As LongPtr) As Long
    Sur une VM en 32 bits et Access13 32 bits

    Par contre je m'interroge: qu'est-ce que VBA7? et le test de ton exemple?
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

  11. #11
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Le code
    teste si on est en version VBA7.

    C'est la version apparu avec Office 2010 qui est compatible 64bits.
    Le code donné déclare la fonction IsIconic différemment en fonction de la version.
    Ainsi le code fonctionne en 32bits et en 64bits, quelque soit la version d'Office.

    VBA7 ne teste pas si on est en 64bits ou pas, il teste une version de VBA (donc indirectement une version d'Office).
    Si tu conserves uniquement la déclaration avec PtrSafe, alors l'application ne compilera pas sur des versions antérieures à 2010 qui ne connaissent ni PtrSafe, ni LongPtr.

    Code fonctionne en 32bits uniquement, quelque soit le numéro de version d'Office : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long

    Code fonctionne en 32bits et 64bits, à partir de Office 2010 : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Declare PtrSafe Function IsIconic Lib "user32" Alias "IsIconic" (ByVal hwnd As LongPtr) As Long

    Donc :
    Code commun toutes versions : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #If VBA7 Then
    Public Declare PtrSafe Function IsIconic Lib "user32" Alias "IsIconic" (ByVal hwnd As LongPtr) As Long
    #Else
    Public Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long
    #End If

    Plus d'infos sur le sujet ici :
    https://arkham46.developpez.com/arti...ice/vba64bits/

  12. #12
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2013
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 328
    Points : 477
    Points
    477
    Par défaut
    Que dire de plus .... .... RESPECT...

  13. #13
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    956
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 956
    Points : 1 139
    Points
    1 139
    Par défaut Comment savoir si un formulaire est minimisé
    Merci Arkham46 !!!

    Tu nous éclaires de ta docte lumière !

    Plaisanterie mise à part je suis très content d'en apprendre tous les jours malgré mes années de pratique.

    Tout çà vérifie ma signature: Essayer. Rater...

    Bonne continuation sur ce forum au top !
    Essayer. Rater. Essayer encore. Rater encore. Rater mieux. (Samuel Beckett)
    Ou encore:
    Quand ça ne tourne pas rond dans le carré de l'hypothénuse , c'est signe qu'il est grand temps de prendre les virages en ligne droite.(Pierre Dac)
    ... Des principes qui m'ont beaucoup aidé en informatique...

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

Discussions similaires

  1. [AC-2003] Comment savoir si un formulaire est un sous-formulaire ?
    Par Darkzombie dans le forum IHM
    Réponses: 6
    Dernier message: 02/09/2009, 15h19
  2. [FORMULAIRE] Comment savoir quel bouton radio est checked pour test ?
    Par Sekigawa dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/02/2009, 11h16
  3. Réponses: 1
    Dernier message: 20/03/2006, 13h30
  4. Unix - Comment savoir si un fichier est ouvert
    Par freddyboy dans le forum C
    Réponses: 7
    Dernier message: 06/10/2004, 15h53
  5. Comment savoir qu'une fonction est standard ?
    Par D[r]eadLock dans le forum C
    Réponses: 5
    Dernier message: 24/03/2003, 14h42

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