FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Fonctionnement du caret_x_position(N)
par Jack Hier à 20:36

» Problèmes en cours.
par Jack Hier à 20:31

» PanExpress : l'éditeur Panoramic avec création d'objet
par Minibug Hier à 19:55

» Exemple d'une nouvelle version d'un GRID
par Minibug Hier à 17:36

» Comment faire fonctionner \qj en RTF ?
par jjn4 Mer 12 Déc 2018 - 19:25

» Mais où est donc passé Klaus ?!
par Jicehel Mer 12 Déc 2018 - 13:38

» Problème avec SaveStringList.
par Klaus Mer 12 Déc 2018 - 12:14

» Je suis de retour !
par Klaus Mer 12 Déc 2018 - 12:10

» Connexion au forum
par mindstorm Mer 5 Déc 2018 - 19:09

» Version instantanée V 0.9.29i5 du 17/11/2018
par silverman Ven 30 Nov 2018 - 10:37

» imprimer avec Print.dll
par JL35 Jeu 29 Nov 2018 - 21:33

» Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ...
par Minibug Dim 25 Nov 2018 - 15:37

» Impression de documents
par JL35 Ven 23 Nov 2018 - 19:45

» Logiciel de soutien scolaire.
par Marc Jeu 22 Nov 2018 - 20:51

» Logiciel de soutien en langues.
par Marc Jeu 22 Nov 2018 - 19:39

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2018
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 Fermeture Form par la croix rouge

Aller en bas 
AuteurMessage
Jean Claude

avatar

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

MessageSujet: Fermeture Form par la croix rouge   Mer 7 Nov 2018 - 9:12

Suite à un échange sur le sujet PanExpress, j'ouvre ce sujet pour permettre de ne pas polluer celui de Minibug.

Jack a écrit:
Le dysfonctionnement causé par un clic sur la croix rouge est un bug "congénital" de Panoramic.
Lorque j'ai voulu le corriger, on m'a demandé de ne pas le faire...

http://panoramic.1fr1.net/t4686-traducteur-anglais-franais#57294

http://panoramic.1fr1.net/t4714-version-instantane-du-20-mars-2016-panoramic-v-0-9-27i6#57296

Ma question: est-il possible d'avoir une commande qui permette les 2 options (avec ou sans le bug) ?

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 724
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Fermeture Form par la croix rouge   Mer 7 Nov 2018 - 13:04

Jette une oeil ici Razz
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

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

MessageSujet: Re: Fermeture Form par la croix rouge   Mer 7 Nov 2018 - 13:47

J'ai bien l'impression que l'on partage tous la même idée sur cette croix rouge.

C'est à dire de pouvoir faire marche arrière en cas de clic sur la croix de la fenêtre 0.

J'espère que Jack pourra faire le nécessaire...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
papydall

avatar

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

MessageSujet: Re: Fermeture Form par la croix rouge   Mer 7 Nov 2018 - 16:01

Essayez ces deux codes que j’ai déjà postés dans je ne sais plus où ! Embarassed

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")
    dim_local tex$
    
    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%)
    tex$ = "Vous ne pouvez pas fermer FORM " + str$(NumForm) + " par la croix"
    tex$ = tex$ + chr$(13) + "Essayez durant 5 secondes pour vous en convaincre." + chr$(13)
    message tex$
    pause 5000
    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 ============================================================================



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 ============================================================================
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

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

MessageSujet: Re: Fermeture Form par la croix rouge   Mer 7 Nov 2018 - 17:09

Oui Papydall, ta solution est bonne,
Mais les Panoramiciens qui codent un éditeur, sans utilisation d'une DLL (pour respecter le cahier des charges de Jack) n'ont pas de solution en pur Panoramic.

@Silverman,
Oups ! j'avais lu ton sujet "MESSAGE_EXIT_APPLICATION...", mais je l'ai oublié. Embarassed

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

Nombre de messages : 1955
Date d'inscription : 28/05/2007

MessageSujet: Re: Fermeture Form par la croix rouge   Mer 7 Nov 2018 - 19:26

Minibug a écrit:
J'ai bien l'impression que l'on partage tous la même idée sur cette croix rouge.
C'est à dire de pouvoir faire marche arrière en cas de clic sur la croix de la fenêtre 0.
J'espère que Jack pourra faire le nécessaire...

Je suis en train de coder 2 commandes :
CLOSE_INACTIVE qui inhibe la destruction de FORM0 quand on clique sur la croix rouge (un click sur la croix rouge ne fait rien),
CLOSE_ACTIVE qui est le retour à l'état par défaut pour annuler l'effet de CLOSE_INACTIVE: un clic sur la croix rouge ferme FORM0 définitivement.

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.1fr1.net
jjn4

avatar

Nombre de messages : 1790
Date d'inscription : 13/09/2009

MessageSujet: +++   Mer 7 Nov 2018 - 19:36

Oui, super !
cheers
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Minibug

avatar

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

MessageSujet: Re: Fermeture Form par la croix rouge   Mer 7 Nov 2018 - 19:41

Merci pour ta réactivité Jack !

Je pense que cette formule est la bonne.
Elle laissera à chacun la possibilité de coder le ON_CLOSE selon ses besoins.

Encore merci ! Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Jean Claude

avatar

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

MessageSujet: Re: Fermeture Form par la croix rouge   Mer 7 Nov 2018 - 20:14

Voilà une bonne solution.

Tout le monde sera satisfait....

Merci Jack.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 724
Age : 46
Localisation : Picardie
Date d'inscription : 18/03/2015

MessageSujet: Re: Fermeture Form par la croix rouge   Mer 7 Nov 2018 - 20:17

C'est une excellente nouvelle jack! Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Fermeture Form par la croix rouge   Mer 7 Nov 2018 - 20:27

Minibug a écrit:
Je pense que cette formule est la bonne.
Elle laissera à chacun la possibilité de coder le ON_CLOSE selon ses besoins.

Juste une précision:

Jack a écrit:
CLOSE_INACTIVE qui inhibe la destruction de FORM0 quand on clique sur la croix rouge (un click sur la croix rouge ne fait rien),

Dans ce cas ON_CLOSE ne sert plus....
Il semble que ces 2 nouvelles commandes ne seront active que pout FORM 0.

C'est tout de même une amélioration, on verra à l'utilisation.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

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

MessageSujet: Re: Fermeture Form par la croix rouge   Mer 7 Nov 2018 - 20:38

Jean Claude a écrit:
Dans ce cas ON_CLOSE ne sert plus....

Tout dépend de la façon dont Jack va coder CLOSE_INACTIVE.
Il faudrait que dans les 2 cas CLOSE_ACTIVE et CLOSE_INACTIVE il y est un accès au sous programme déclenché par ON_CLOSE.

Ce qui permettrait dans les 2 cas un accès au sous-programme. Enfin c'est ma vision des choses...
Avec CLOSE_ACTIVE il y aurait un traitement du sous-programme puis un arrêt obligatoire du programme.
Alors qu'avec CLOSE_INACTIVE, il n'y aurait qu'un traitement du sous-programme.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Contenu sponsorisé




MessageSujet: Re: Fermeture Form par la croix rouge   

Revenir en haut Aller en bas
 
Fermeture Form par la croix rouge
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Croix rouge dans GOOGLE EARTH
» Annuler la fermeture d'une fenêtre ?
» [Résolu] Sélection des POI a afficher et divers
» Hummer (voitures gratuites pour la Croix Rouge américaine)
» acces limité wifi

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: