FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Bataille navale SM
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar jjn4 Aujourd'hui à 17:39

» Une calculatrice en une ligne de programme
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar jean_debord Aujourd'hui à 8:01

» Gestion d'un système client-serveur.
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar Pedro Hier à 19:31

» Les maths du crocodile
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar jean_debord Hier à 10:37

» Naissance de Crocodile Basic
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar jean_debord Hier à 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar leclode Dim 21 Avr 2024 - 18:09

» trop de fichiers en cours
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar Marc Dim 21 Avr 2024 - 2:41

» 2D_fill_color(résolu)
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
 -  Désactiver / activer la croix X de fermeture d'un FORM et + Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
-29%
Le deal à ne pas rater :
PC portable – MEDION 15,6″ FHD Intel i7 – 16 Go / 512Go (CDAV : ...
499.99 € 699.99 €
Voir le deal

 

  Désactiver / activer la croix X de fermeture d'un FORM et +

Aller en bas 
5 participants
AuteurMessage
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptyDim 10 Avr 2016 - 15:22

Code:

rem ============================================================================
rem       Désactiver / activer la croix X de fermeture d un FORM
rem ============================================================================
Desactive_X(0)
end
rem ============================================================================
' Désactiver la croix de fermeture d'un FORM
' NumForm est le numéro du FORM dont on veut désactiver / activer la fermeture par la croix
SUB Desactive_X(NumForm)
    Dim_local hWnd  : ' handle de la fenêtre FORM NumForm
    dim_local hMenu : ' handle du menu système de la fenêtre en cours
    Dim_local result%, flag%
    dim_local SC_CLOSE : SC_CLOSE = hex("F060")
    
    dll_on "user32"
    if object_exists(NumForm) = 0
       message "FORM " + str$(NumForm) + " n'existe pas !!!"
       exit_sub
    end_if
    hWnd = handle(NumForm) : ' handle du Form NumForm
    hmenu = dll_call2("GetSystemMenu",hWnd,0) : ' handle du menu système de la fenêtre en cours
    flag% = 1 : ' La croix est désactivée
    result% = dll_call3("EnableMenuItem",hMenu, SC_CLOSE, flag%)
    message "Vous ne pouvez pas fermer FORM " + str$(NumForm) + " par la croix"
    pause 2000
    flag% = 0 : ' La croix est à nouveau activée
    result% = dll_call3("EnableMenuItem",hMenu, SC_CLOSE, flag%)
    message "Maintenant vous pouvez fermer FORM " + str$(NumForm) + " par la croix"
END_SUB
rem ============================================================================


Dernière édition par papydall le Lun 11 Avr 2016 - 5:03, édité 1 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Re: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptyDim 10 Avr 2016 - 15:49

C'est très pratique et très facile a mettre en oeuvre.
Un appel de DLL avec un flag a 0 ou 1, on ne peut plus simple.

Etant encore sous Win7, et pour m'affranchir des problèmes de bordures de fenêtre, je travaille en border_hide aussi souvent que possible. En plus cela donne en look Win10 a mes programmes.
Comme cela plus de problème de croix. drunken

En tout cas merci pour cette astuce Papydall !  Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Re: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptyDim 10 Avr 2016 - 16:22

En cas de pépins, il reste toujours <ALT + F4> pour fermer une fenêtre
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Invité
Invité




 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Re: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptyLun 11 Avr 2016 - 0:05

Bonsoir. Cosmos70 en passant par là, a eu l'idée de se servir de celle de Papydall pour empécher la fermeture de la croix, mais celle de Panoramic_Editor:

Code:
' Pour désactiver l'Editeur Panoramic, selon Papydall
Desactive_X()
terminate
end
SUB Desactive_X()
    dll_on "user32"
    Dim_local hWnd  : ' handle de la fenêtre FORM NumForm
    dim_local hMenu : ' handle du menu système de la fenêtre en cours
    Dim_local result%, flag%
    dim_local SC_CLOSE : SC_CLOSE = hex("F060")

    hWnd = handle_Form("PANORAMIC EDITOR")    : ' handle de Panoramic_Editor
    hmenu = dll_call2("GetSystemMenu",hWnd,0) : ' handle du menu système de la fenêtre en cours
    flag% = 1 : ' La croix est désactivée
    result% = dll_call3("EnableMenuItem",hMenu, SC_CLOSE, flag%)
    dll_off
end_sub

Cela fait plusieurs fois en voulant fermer une fenêtre, je clique sur celle de Panoramic Editor qui est juste dessous. Et ça fonctionne bien!
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Re: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptyLun 11 Avr 2016 - 1:12

Bonne idée d’utiliser cette sub pour désactiver la croix de Panoramic Editor.
Ça éviterait de fermer l’Editeur par inadvertance.
Par ailleurs, on peut l’appliquer à toute fenêtre dont on peut déterminer le handle.

NB : N’oubliez pas que vous pouvez toujours fermer la fenêtre courante par la combinaison <ALT + F4>
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Re: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptyLun 11 Avr 2016 - 5:11

Voici une SUB plus complète pour désactiver les commandes système ainsi que l’affichage du menu système d’une fenêtre :
Interdire de fermer, de réduire, d’agrandir, de déplacer une fenêtre, d’afficher son menu système.
Ça permet de choisir précisément ce sur quoi  on veut agir.
Après la démonstration, on rétablit tout.

Le code est suffisamment documenté pour suivre son déroulement.
Vous pouvez tester une à une les fonctions DLL_CALL pour observer leur effet.

REMARQUE :  On peut utiliser cette sub pour toute fenêtre (même autre qu’une fenêtre de PANORAMIC) dont on peut déterminer le handle.

Code:

rem ============================================================================
rem                DisableSystemMenu
rem ============================================================================
rem Désactiver les commandes système de la fenêtre se trouvant en haut à droite :
rem la croix de fermeture, le bouton Agrandir et le bouton Réduire
rem Désactiver le menu système qu on obtient par un click sur le bouton en haut à gauche
rem Restaurer, Déplacer, Taille, Réduire, Agrandir, Fermer
rem ============================================================================
rem Permet de choisir précisément ce sur quoi on veut agir...
rem A la fin on rétablit tout
rem ============================================================================

DisableSystemMenu(0)

end
rem ============================================================================
SUB DisableSystemMenu(NumForm)
    dim_local MF_BYPOSITION : MF_BYPOSITION  = hex("400")
    Dim_local hWnd  : ' handle de la fenêtre FORM NumForm
    dim_local hMenu : ' handle du menu système de la fenêtre en cours
    dim_local ret%  : ' variable de retour
    dim_local tex$
    if object_exists(NumForm) = 0
       message "FORM " + str$(NumForm) + " n'existe pas !!!" : exit_sub
    end_if
    dll_on "user32"
    hWnd = handle(NumForm) : ' handle de la fenêtre FORM NumForm
' Essayez avec PANORAMIC EDITOR , ça marche aussi
    ' hWnd = handle_Form("PANORAMIC EDITOR")
    hmenu = dll_call2("GetSystemMenu",hWnd,0) : ' handle du menu système de la fenêtre en cours

' désactiver la croix de fermeture du FORM NumForm et la commande Fermeture du menu système
    ret% = dll_call3("DeleteMenu",hmenu,6,MF_BYPOSITION)
' supprimer le trait de séparation du menu système avant Fermeture
    ret% = dll_call3("DeleteMenu",hmenu,5,MF_BYPOSITION)
' supprimer la commande Agrandissement du menu système et la commande Agrandir de la fenêtre
    ret% = dll_call3("DeleteMenu",hmenu,4,MF_BYPOSITION)
' supprimer la commande Réduction du menu système et désactive la commande Réduire de la fenêtre
    ret% = dll_call3("DeleteMenu",hmenu,3,MF_BYPOSITION)
' désactiver la commande Déplacement du menu système
    ret% = dll_call3("DeleteMenu",hmenu,2,MF_BYPOSITION)
' supprimer la commande Déplacement du menu système et désactive la commande Dimension
    ret% = dll_call3("DeleteMenu",hmenu,1,MF_BYPOSITION)
' supprimer la commande Restauration du menu système et désactive la commande Restaurer de la fenêtre
    ret% = dll_call3("DeleteMenu",hmenu,0,MF_BYPOSITION)
' ------------------------------------------------------------------------------
    tex$ = "Après la validation de ce message," + chr$(13)
    tex$ = tex$ + "Vous ne pouvez ni fermer, ni réduire, ni agrandir, ni déplacer la fenêtre !!!"
    tex$ = tex$ + chr$(13) + "Essayez durant 5 secondes pour vous en convaincre." + chr$(13)
    message tex$
    pause 5000
' rétablir le menu sytème et les commandes de fenêtre (Réduire, Agrandir, Fermer)
    ret% = dll_call2("GetSystemMenu",hWnd,1)
    
    tex$ = "Tout est rétabli à présent."+ chr$(13)
    tex$ = tex$ + "Vous pouvez réduire, agrandir,fermer, déplacer votre FORM" + chr$(13)
    tex$ = tex$ + "Vous pouvez également afficher le menu système de votre FORM" + chr$(13)
    tex$ = tex$ + "en cliquant sur le bouton en haut à gauche de la barre du titre"
    message tex$

END_SUB
rem ============================================================================

Remarque : les boutons Réduire et Agrandir à gauche de la croix sont désactivés bien qu'ils restent affichés.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Minibug

Minibug


Nombre de messages : 4566
Age : 57
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Re: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptyLun 11 Avr 2016 - 8:29

De plus en plus fort papydall...
Bravo ! cheers
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Re: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptyLun 11 Avr 2016 - 9:58

C'est excellent, on peut enfin gérer une fenêtre comme on le souhaite.

Merci Cosmos et Papydall.

A+
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: re    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptyLun 11 Avr 2016 - 10:48

Si tu pouvais me mettre cela en forme pour le mag, je la publie.
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Re: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptyLun 11 Avr 2016 - 12:10

Comme j’aime bien les formes, je mettrai tout ça en forme quand je me sentirai en bonne forme tongue
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8610
Age : 52
Localisation : Bretagne
Date d'inscription : 15/02/2010

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: re    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptyLun 11 Avr 2016 - 12:30

A fond... la forme !
Laughing
Revenir en haut Aller en bas
Fredisland




Nombre de messages : 261
Date d'inscription : 30/03/2018

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Re: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptySam 28 Avr 2018 - 14:20

Deux ans plus tard je ne peux que plussoyer pour ces petits bouts de code absolument terribles ! Merci...
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6996
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Re: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + EmptySam 28 Avr 2018 - 18:37

Je suis sûr que beaucoup de trucs, d’astuces et des idées  intéressantes se trouvent un peu partout sur ce forum.
Souvent, le problème est comment les retrouver ?
Ça m’arrive d’être agréablement surpris par le dépoussiérage de l’un de mes codes que j’ai oublié que j’en suis l’auteur.

Merci Fredisland pour la remise en lumière de ces trucs.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





 -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty
MessageSujet: Re: Désactiver / activer la croix X de fermeture d'un FORM et +    -  Désactiver / activer la croix X de fermeture d'un FORM et + Empty

Revenir en haut Aller en bas
 
Désactiver / activer la croix X de fermeture d'un FORM et +
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» désactiver la croix de fermeture d'une fenêtre
» Fermeture Form par la croix rouge
» Fermeture d'un form N
» Solution ultime pour bloquer la croix rouge !
» ON_CLOSE - Empêcher la fermeture d'une form !

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: