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
» PANORAMIC V 1
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar Klaus Aujourd'hui à 9:53

» Je teste PANORAMIC V 1 beta 1
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar Klaus Aujourd'hui à 9:52

» bouton dans autre form que 0
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar leclode Hier à 13:59

» KGF_dll - nouvelles versions
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar Klaus Hier à 11:41

» Gestion d'un système client-serveur.
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar Klaus Hier à 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
ON_CLOSE - Empêcher la fermeture d'une form ! Emptypar jjn4 Lun 22 Avr 2024 - 13:43

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Pokémon EV06 : où acheter le Bundle Lot ...
Voir le deal

 

 ON_CLOSE - Empêcher la fermeture d'une form !

Aller en bas 
2 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12291
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

ON_CLOSE - Empêcher la fermeture d'une form ! Empty
MessageSujet: ON_CLOSE - Empêcher la fermeture d'une form !   ON_CLOSE - Empêcher la fermeture d'une form ! EmptySam 18 Déc 2010 - 12:45

Il y a de multiples posts sur le forum débattant de ce sujet. L'état actuel des connaissances sur Panoramic dit ceci:
Citation :
L'évènement on_close est déclenché lorsque Windows a reçu l'ordre de fermer la form. Il permet de reprendre la main juste avant la fermeture pour faire "du ménage", mais pas pour empêcher de fermer la form. Windows la fermera de toutes façons.

Jack a parlé d'une possibilité d'avoir une commande qui annullerait cela. Ce serait évidemment la meilleure solution. En attendant, j'ai trouvé un moyen d'éviter la fermeture définitive pour toutes les forms autres que la form 0 !

En effet, la form 0 est associée directement au processus de base, pour Windows, et fermer cette form entraîne automatiquement l'arrêt du processus. Il n'y a pas moyen déviter cela, sauf par la nouvelle commande dont parle Jack.

Mais pour toutes les autres forms, il y a un moyen ! En effet, fermer une form aute que form 0 ne la "supprime" pas - cette action ne fait qu'enlever la partie affichée. Il suffit d'un show pour la réafficher. Malheureusement, il ne sert à rien de faire cela dans l'évènement on_close, puisque la suppression de la partie visible se passe après.

Mais on peut contourner le problème par un timer (encore une application pour le timer !). Si on lance un timer dont l'évènement se déclenche APRES la suppression de la partie visible de la form, il suffit de faire un show de cette form dans l'évènement timer, et tout revient !

Alors, le moyen absolu d'empêcher le programme de s'arrêter, est le suivant:
- faire immédiatement HIDE 0
- créer une form 1 dans laquelle on met tout ce que l'on voulait mettre dans la form 0
- protéger la form 1 par le mécanisme décrit ci-dessus et montré dans l'exemple ci-dessous
==> ON NE PEUT PLUS FERMER L'APPLICATION !


Voici une petite démo, avec la form 0 dont la fermeture est malheureusement inévitable, et la form 1 impossible à fermer !
Code:
label restaurer_0, restaurer_1, close_0, close_1

timer 100 : timer_interval 100,100 : on_timer 100,restaurer_0
timer 101 : timer_interval 101,100 : on_timer 101,restaurer_1

alpha 10 : caption 10,"Essayez de fermer la form 0 - inévitable !"

form 1 : command_target_is 1 : top 1,60 : left 1,60
alpha 11 : caption 11,"Essayez de fermer la form 1 - impossible !"

on_close 0,close_0
on_close 1,close_1
end

close_0:
timer_on 100
return

close_1:
timer_on 101
return

restaurer_0:
timer_off 100
show 0
return

restaurer_1:
timer_off 101
show 1
return


Dernière édition par Klaus le Sam 18 Déc 2010 - 17:29, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

ON_CLOSE - Empêcher la fermeture d'une form ! Empty
MessageSujet: Re: ON_CLOSE - Empêcher la fermeture d'une form !   ON_CLOSE - Empêcher la fermeture d'une form ! EmptySam 18 Déc 2010 - 16:23

Quel malin ce Klaus, c'est bien un maître Wink

Et aussi tu aime bien le timer hein Wink

A ce propos, le timer remettra la form mais on est obligé de stoper le timer ensuite sinon son action est répétitive.
Et si on re-affichait la form avec show 1 juste après le on_close ?


Ta form 1 il ets possible de la mettre en background avant-plan ? pour empêcher de fermer le form 0.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12291
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

ON_CLOSE - Empêcher la fermeture d'une form ! Empty
MessageSujet: Re: ON_CLOSE - Empêcher la fermeture d'une form !   ON_CLOSE - Empêcher la fermeture d'une form ! EmptySam 18 Déc 2010 - 17:28

Citation :
A ce propos, le timer remettra la form mais on est obligé de stoper le timer ensuite sinon son action est répétitive.
C'est ce que j'ai fait dans le programme de démo ! La première action prise dans la routine on_timer est bien TIMER_OFF...

Citation :
Et si on re-affichait la form avec show 1 juste après le on_close ?
J'ai donné la réponse dans mon post:
Citation :
Malheureusement, il ne sert à rien de faire cela dans l'évènement on_close, puisque la suppression de la partie visible se passe après.

Citation :
Ta form 1 il ets possible de la mettre en background avant-plan ? pour empêcher de fermer le form 0.
Ce n'est pas possible. Mais j'ai donné la solution dans mon post:
Citation :
Alors, le moyen absolu d'empêcher le programme de s'arrêter, est le suivant:
- faire immédiatement HIDE 0
- créer une form 1 dans laquelle on met tout ce que l'on voulait mettre dans la form 0
- protéger la form 1 par le mécanisme décrit ci-dessus et montré dans l'exemple ci-dessous
==> ON NE PEUT PLUS FERMER L'APPLICATION !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





ON_CLOSE - Empêcher la fermeture d'une form ! Empty
MessageSujet: Re: ON_CLOSE - Empêcher la fermeture d'une form !   ON_CLOSE - Empêcher la fermeture d'une form ! Empty

Revenir en haut Aller en bas
 
ON_CLOSE - Empêcher la fermeture d'une form !
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Comment empêcher affichage initial des FORM ?
» Fermeture d'un form N
» Fermeture de FORM
» Fermeture Form par la croix rouge
»  Désactiver / activer la croix X de fermeture d'un FORM et +

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: