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
» SineCube
Fonctionnement de ON_CLOSE Emptypar Marc Hier à 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Fonctionnement de ON_CLOSE Emptypar Marc Hier à 12:22

» Philharmusique
Fonctionnement de ON_CLOSE Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Fonctionnement de ON_CLOSE Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Fonctionnement de ON_CLOSE Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Fonctionnement de ON_CLOSE Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Fonctionnement de ON_CLOSE Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Fonctionnement de ON_CLOSE Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Fonctionnement de ON_CLOSE Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Fonctionnement de ON_CLOSE Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Fonctionnement de ON_CLOSE Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Fonctionnement de ON_CLOSE Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Fonctionnement de ON_CLOSE Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Fonctionnement de ON_CLOSE Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Fonctionnement de ON_CLOSE Emptypar leclode Sam 27 Avr 2024 - 17:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-45%
Le deal à ne pas rater :
WHIRLPOOL OWFC3C26X – Lave-vaisselle pose libre 14 couverts – ...
339 € 622 €
Voir le deal

 

 Fonctionnement de ON_CLOSE

Aller en bas 
+3
jjn4
Klaus
Jean Claude
7 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Jean Claude

Jean Claude


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 15:19

Est-ce un bug ou est-ce normal ???

voici l'exemple:
Code:
dim a
label show_form, close_20
on_click 0,show_form

form 20 : caption 20,"Essai":hide 20
command_target_is 20
on_close 20,close_20
alpha 21:caption 21,"vous avez oublié de remettre A à zéro"

end

show_form:
show 20
return

close_20:
' message "Au revoir..."
if a<>0 then show 21
return

cette condition n'est pas executée: if a<>0 then show 21

A+



Le but etant d'empêcher la fermeture de FORM20, pour permettre à l'utilisateur de rectifier le tir avec un objet (edit, option....) de ce FORM20. Or s'il est fermé ce ne sera pas possible
Revenir en haut Aller en bas
Klaus

Klaus


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 16:55

Je ne comprends pas ce que tu veux faire.

L'objet 21 est un alpha et est toujours visible.

La variable a est définie mas pas initialisée, et elle a donc la valeur 0. C'est la raison pourquoi le "show 21" n'est pas exécuté, mais le "if a<>0" est bien exécuté, seulement in rend "faux".

Mais même s'il rendait vrai (en plaçant "a=1" dans le programme), le "show 21" ne change rien, car 21 est visible d'office.

Si tu fais "hide 21" après la création, puis "a=1", alors là, ça se déroule comme tu le penses sauf que:

ON NE PEUT PAS ANNULER LA FERMETURE D'UNE FORM !

En aucun cas ! Le on_close ne sert qu'à être averti que la form va fermet afin qu'on puisse faire un peu de ménage, mais pas pour pouvoir annuler cette action !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jjn4

jjn4


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: +++   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 17:24

A la rigueur, on peut annuler la fermeture d'un form de cette manière :
Code:
dim a
label fin , montre , reviens
on_click 0,montre

form 20
  hide 20
  on_close 20,fin

timer 25
  timer_interval 25,300
  on_timer 25,reviens
 
end

fin:
  a=1
return

montre:
  show 20
return

reviens:
  if a=1
      show 20
  end_if
  a=0
return
jocolor


Dernière édition par jjn4 le Sam 4 Déc 2010 - 17:50, édité 3 fois
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 17:24

Par exemple:
Code:
dim r
label alerte

on_close 0, alerte
end

alerte:
r = Message_Confirmation_Yes_No("Le fichier n'a pas été sauvegardé. Sauvegarder maintenant ?")
if r = 1
    ' sauvegarde...
end_if
return
et puis on sort dans tous les cas.

... croisé avec jjn4...
Revenir en haut Aller en bas
jimx78

jimx78


Nombre de messages : 241
Age : 32
Localisation : Yvelines
Date d'inscription : 24/05/2010

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 18:05

JL35 a écrit:
Par exemple:
Code:
dim r
label alerte

on_close 0, alerte
end

alerte:
r = Message_Confirmation_Yes_No("Le fichier n'a pas été sauvegardé. Sauvegarder maintenant ?")
if r = 1
    ' sauvegarde...
end_if
return
et puis on sort dans tous les cas.

... croisé avec jjn4...

Cela marche parfaitement mais c'est juste pour que tu gagne du temp JL35:

C'est au niveau de ta condition, tu peut ne pas déclaré de variable (par dim)


Code:
label alerte

on_close 0, alerte
end

alerte:
if Message_Confirmation_Yes_No("Le fichier n'a pas été sauvegardé. Sauvegarder maintenant ?") = 1
    ' sauvegarde...
end_if
return

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 18:09

hum... tu pinailles...
Revenir en haut Aller en bas
jimx78

jimx78


Nombre de messages : 241
Age : 32
Localisation : Yvelines
Date d'inscription : 24/05/2010

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 18:32

Oui c'est vrais dsl ça me prend des fois^^
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 18:33

JL35, tu n'as pas fait l'essai de ce que tu proposes, alors je l'ai fait juste pour te monter que çà ne marchera pas non plus.

COMMENT JE DOIS FAIRE POUR ME FAIRE COMPRENDRE ? confused
Code:

dim r,passage
label alerte,prog

on_close 0, alerte
button 1:caption 1,"Go Prog":on_click 1,prog

gosub prog
end

prog:
' enregistre le fichier
passage=1:' pour dire que le fichier est remplacé
return

alerte:
if passage=1 then return
if passage=0 then r=Message_Confirmation_Yes_No("Le fichier n'a pas été sauvegardé. Sauvegarder maintenant ?")
if r=0 then goto alerte
if r=1 then gosub prog
return

Je vais finir ma blanquette de veau et préparer l'apérot, je vous retrouverai ce soir. bom drunken

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 18:46

Bien sûr que si j'ai fait l'essai, mais évidemment dès qu'on sort du sous-programme alerte, on quitte, quoi qu'il arrive, et ça on n'y peut rien.
On peut intercepter la sortie par exemple pour faire quelque chose juste avant, mais comme dit Klaus on ne peut pas l'empêcher, c'est inéluctable.

Effectivement ton exemple ne marche pas, le mien marche, mais pas le temps de regarder pourquoi.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 19:07

Citation :
Effectivement ton exemple ne marche pas, le mien marche, mais pas le temps de regarder pourquoi.

Hé ben moi je dis que non! Ton fichier ne sera pas sauvegardé, parce que (comme tu le dis toi même) on quitte avant.

C'est pourquoi je posais la question "Est-ce normal". On va pas en faire un fromage, je voulais seulement savoir si ce fonctionnement de ON_CLOSE est voulu ou pas.
Si c'est oui, alors je me débrouillerais autrement.

A+
Revenir en haut Aller en bas
jjn4

jjn4


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: +++   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 19:08

Bon, alors quand tu aura digéré ta blanquette et cuvé ton apéro (et le reste...),
essaye donc ceci :
Code:
rem ' Exemple de fermeture contrôlée de form
  dim a
  label bis , montre , what
  on_click 0,montre

form 20
  on_close 20,what
 
timer 25
  timer_interval 25,40
  on_timer 25,bis
 
end

bis:
  if a=1
      show 20
  end_if
return

montre:
  show 20
return

what:
  if message_confirmation_yes_no("Vous voulez vraiment fermer ?")<>1
      a=1
  else
      a=0
  end_if
return
Laughing jocolor alien
PS: ah, on s'est croisé (déjà mangé toute la blanquette ?)


Dernière édition par jjn4 le Sam 4 Déc 2010 - 20:24, édité 1 fois
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
dragonno




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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 19:15

Je suis d'accord avec Jean_claude et j'en parle aussi dans le post où le problème du on_close() est apparu la premiere fois.

un sous-programme doit être appelé par le on_close mais surtout la fenetre ne doit pas etre fermée définitivement si l'utilisateur change d'avis dans le sous-programme.
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 19:19

Code:

dim r,passage
label alerte,prog,debut

on_close 0, alerte
button 1:caption 1,"vers Form 10":on_click 1,debut
form 10:command_target_is 10:hide 10
button 11:caption 11,"Go Prog":on_click 11,prog

end

debut:
show 10:gosub prog
return

prog:
' enregistre le fichier
passage=1:' pour dire que le fichier est remplacé
return

alerte:
inactive 11
if passage=1 then return
if passage=0 then r=Message_Confirmation_Yes_No("Le fichier n'a pas été sauvegardé. Sauvegarder maintenant ?")
if r=0 then goto alerte
if r=1 then gosub prog
return


dans ce code on voit que rien n'est executé dans le sous-prog alerte. Alors à quoi sert ON_CLOSE ?
Je sais, je suis têtu.

Bon c'est l'heure, faut que j'y aille.

A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 19:25

Bravo JJN4, y en a au moins un qui fait une bonne démonstration.

Mais il faut obligatoirement utiliser TIMER.

MERCI. cette fois-ci je part car çà cri dans la cuisine.

A+
Revenir en haut Aller en bas
dragonno




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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 19:37

Citation :
dans ce code on voit que rien n'est executé dans le sous-prog alerte. Alors à quoi sert ON_CLOSE ?
Je sais, je suis têtu.
ah c'est ça ? j'avais mal compris, effectivement c'est bizarre si la routine n'est pas appelée :/
Pour ma part je cherche à ce qu'il y ait possibilité d'annuler la fermeture de la fenetre dans la routine appelée.
Revenir en haut Aller en bas
Klaus

Klaus


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 19:53

Une fois pour toutes, Il faudra bien accepter que l'évènement on_close n'est déclenche QUE si la form ferme définitivement ! C'est Windows qui gère cet évènement (à partir de la croix rouge, de l'effet de la commande "close" ou de la fonction "Terminer le processus" du gestionnaire des tâches de Windows). Dans tous les cas, la fenêtre est morte. Le seul plus qu'apporte cette commande - que Jack soit béni pour cela - c'est de pouvoir avoir la main APRES la prise de décision de fermeture et AVANT la fermeture réelle.

Un exemple qui marche, pour sauvegarder des fichiers ou données, par exemple:
Code:

label close_20, change_1
dim flag_modification%

form 20 : on_close 20,close_20
command_target_is 20

memo 1 : on_change 1,change_1

flag_modification% = 0

end

change_1:
flag_modification% = 1
return

close_20:
message "ATTENTION ! La fenêtre sera fermée !"
if flag_modification%=1
    message "Maintenant, on sauvegarde le mémo..."
else
    message "On n'a pas besoin de sauvegarder le mémo !"
end_if
message "Maintenant, on ferme définitivement !"
return

Cela marche parfaitement - on peut mettre le code pour sauvegarder n'importe quoi, conditionné par la variable flag_modification%, mais dans tous les cas, la fenêtre sera fermée, On peut le regretter, mais c'est ainsi. Le RETURN de la routine on_close ne peut que retourner dans la partie de Windows qui a déclenché l'évènement on_close, et Windows continue de faire ce qu'il était en train de faire, c'est-à-dire fermer la fenêtre.

Maintenant, Windows possède également un mécanisme pour annuler une fermeture de fenêtre, à ce moment. Mais Jack n'a pas rendu ce mécanisme accessible dans Panormic. Sous pouvez le lui demander dans la rubrique des améliorations souhaitées, mais il est évident qu'ici, il ne s'agit pas d'un bug, mais sulement du fonctionnement normal de ce que cette commande est censée faire.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 20:06

Je sais qu'il y a des poids lourds sur le forum, et qu'on dit que la case est une fermeture et c'est inéluctable?

On peut le penser comme cela, et je pose la question pourquoi? Regarder sur votre ordi, tous les programmes que vous avez, d'ailleurs commencez par fermez l'editeur Panoramic. Si vous manquez de mémoire, faites-le. N'avez-vous pas le rappelle à l'ordre pour savoir si vous désirez vraiment quitter. Et pouvez-vous annuler cette opération. C'est pas parce que c'est une case de fermeture, qu'il est obligatoire que cela ferme. Je prend l'exemple de JustBasic. Si je ne programme rien, cela ferme la fenêtre. Avec TrapClose, si je fais le code, je programme ce que je veux.
Le fait d'appuyer sur la croix, n'est pas forcément une volonté de fermer le programme! Combien de fois j'ai cliqué à côté, ou sur le programme qui se trouvait juste en dessous. Le droit à l'erreur doit exister, et le propre du programmeur est de faire en sorte qu'on puisse revenir en arrière. N'en déplaise à quelques-uns qui trouve cela normal.
Pour moi, cela ne l'est pas et je signe de ma pauvre écriture qui ne vaut rien que c'est un BUG. C'est pas un mauvais codage, c'est un mauvais calcul. J'ai jamais eu peur de m'attaquer au gros, et j'estime avoir raison sur le fond. Tant pis si vous me prenez pour ... ce que vous voulez, chacun son langage!

Je te croise Klaus, et je ne change rien. Tu penseras ce que tu veux de moi! Mais c'est pas grave, cela ne n’empêchera pas de dormir.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 20:59

@Jean Claude
Citation :
Hé ben moi je dis que non! Ton fichier ne sera pas sauvegardé, parce que (comme tu le dis toi même) on quitte avant.
Pardonne-moi d'insister, tu es bien péremptoire, mais je te redonne mon petit programme, un peu étendu:
Code:
dim r
label alerte

on_close 0, alerte
end

alerte:
r = Message_Confirmation_Yes_No("Le fichier n'a pas été sauvegardé. Sauvegarder maintenant ?")
if r = 1
    ' sauvegarde...
    FILE_OPEN_WRITE 1, "Z:\Test.txt"
        FILE_WRITELN 1, "Au clair de la lune"
        FILE_WRITELN 1, "Mon ami Pierrot"
    FILE_CLOSE 1
end_if
return
Ce qui suit le test est parfaitement exécuté et le fichier est bien créé !

On ne quitte définitivement que sur le return, mais tout le sous-programme est bien exécuté.

Attention, je ne parle pas d'empêcher la fermeture, mais de permettre de faire quelque chose avant.


Dernière édition par JL35 le Sam 4 Déc 2010 - 21:02, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 21:02

Rassure-toi, Cosmos70, je ne pense rien de mal de toi ! Ce que tu cites comme exemple, c'est parfaitement exact. Mais il y a deux choses à dire à ce sujet.

1. Au niveau de Windows (et je ne parle pas de Panoramic), l'évènement de fermeture d'une fenêtre peut être intercepté et même rejeté, ce qui permet de poser la question justement et de ne pas fermer si ce n'est pas confirmé. Mais cela se jour au niveau des API système; même en Delphi on peut le faire avec des fonctions construites autour des API. On n'a pas accès à cela en Panoramic.

2. On peut simuler cela, comme je l'ai déjà dit dans un des posts précédents, de la même manière que je le fais dans mon IDE réalisé en Panoramic: avec une form sans bordure (et donc sans bouton de fermeture) et avec un bouton de fermeture réalisé en Panoramic qui permet de poser la question. Je sais, je sais, ce n'est pas satisfaisant car on n'a alors plus les boutons de redimensionnement de la fenêtre et on ne peut plus déplacer la fenêtre par sa barre de titre, mais on n'a rien sans rien.

Maintenant, si l'on veut avoir le beurre et l'argent du beurre (à savoir la fermeture interceptée ET refusable), il faut changer de rubrique pour la rubrique "Vos souhaits d'amélioration de Panoramic" et demander cettepossibilité à Jack, par exemple au moyen d'une nouvelle commande abort_close_form qu'on pourrait lancer dans le cas d'un on_close refusé, ou alors carrément une nouvelle option pour les form du type no_close_on et no_close_off ce qui pourrait rendre une form immortelle...

EDIT

@JL35:

ton post s'est croisé avec le lien. Tu as parfaitement raison, JL35: le code s'exécute bien et permet de faire une sauvegarde, tout comme le montre mon code dans le post juste avant.

Mais je répète que même si cela hérisse le poil de plus d'un: la conception actuelle de on_close est simplement d'intercaler un sous-programme Panoramic dans la procédure déjà enclenchée de fermeture d'une fenêtre - rien de plus. C'est comme ça que Jack l'avait annoncé au départ, et c'est comme ça que ça fonctionne.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 21:04

CQFD
Revenir en haut Aller en bas
Jack
Admin
Jack


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 21:53

Je remarque que le ton monte un peu et ça prouve que les nouvelles commandes ont de l'intérêt !
Je veux préciser les choses.
1 - La commande ON_CLOSE permet d'effectuer un traitement avant la fermeture définitive d'un FORM, en indiquant un label d'exécution.
Code:
label a_faire_avant_la_fermeture
on_close 0,a_faire_avant_la_fermeture
end
a_faire_avant_la_fermeture:
caption 0,"je vais disparaitre"
wait 1000
return
2 - Il est possible de créer une nouvelle commande dans ce traitement de fermeture pour ANNULER la fermeture (par exemple CANCEL_CLOSE), mais cela n'existe pas actuellement. On ne peux empêcher la fermeture dans la version V 0.9.20.
On peut cliquer par erreur sur l'icone de fermeture d'un FORM, mais actuellement dans ce cas, on ne peut enpêcher la fermeture.
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Jean Claude

Jean Claude


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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptySam 4 Déc 2010 - 23:35

Plusieurs reflexions quand à ce sujet:

1) J'ai tout relu et je ne considère pas avoir été péremptoire. Têtu oui, çà je l'admet. J'aime pas quand je comprend pas.

2) j'ai fait l'effort de présenter des codes pour ettayer mes dires, je me demande si on les a étudiés avec considération (si cest le cas on ne m'a démontré correctement pourquoi certaines fonctions n'ont pas marchées dans mon sous-prog). J'ai apparament pas réussi à me faire totalement comprendre par tous, mais je me pose des questions quant à la volonté de certain de considérer certaines demandes de manière sérieuse et impartiale.

3) Je suis de l'avis de cosmos quand il dit qu'il y a des poids lourds, je ne suis qu'un modeste programmeur et je ne comprend rien à ce qui se déroule derriere (ou à coté) de PANORAMIC.

4) je rapelle que la question posée au début était simple.

5) Le dernier code envoyé par JL35, prouve que j'avais tord en disant qu'il ne se passait rien derriere le label généré par ON_CLOSE. Mais encore a-t'il fallu insisté pour que la preuve soit faite par un code fini. Et de plus je pige pas pourquoi le mien (de code) n'exécute pas le sous -prog, alors que celui de JL35 le fait.


Tout çà pour dire quoi ?
hé bien que les "poids lourds" ont beaucoup de mal à ce faire comprendre ou que je suis complètement bouché.
Mais qu'au bout du compte, et même si je passe pour une bille, nous héritons d'une nouvelle fonction pour annuler la fermeture du FORM si besoin. Là je rejoins Cosmos quand il sous-entend que certains ont trop tendance à accepter les choses tel quelles sont.

A la fin Jack tranche, par oui ou par non, mais au moins nous avons défendu notre beafsteak. (dans mon cas ce soir c'était blanquette).

Rassurez-vous je ne suis pas faché, mais je pense que certains avaient besoin de se faire un peu frotter les oreilles.

geek

A demain
Revenir en haut Aller en bas
Invité
Invité




Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptyDim 5 Déc 2010 - 1:04

J'avais regardé ton code, mais je n'avais rien pigé.
C'est quoi le problème? la variable a je la situe mal. Mais bon ,'ai essayé de l'initialiser à 1 et à 0 pour voir.

En fait dans les deux cas, le message s'affiche, et pourquoi? parce qu'aucun moment tu n'as mis à hide l'alpha.
Donc il est normal que l'alpha quelque soit la valeur de a, s'affiche. Lorsqu'on met à hide une form, la forme s'efface,mais les objets eux aurons l'apparence qu'ils avaient avant que la forme ne se ferme.

Code:
dim a
label show_form, close_20
on_click 0,show_form

form 20 : caption 20,"Essai":hide 20
command_target_is 20
on_close 20,close_20
alpha 21:caption 21,"vous avez oublié de remettre A à zéro"
a=1
end

show_form:
show 20
return

close_20:
 message "Au revoir..."+str$(a)
if a<>0 then show 21 :else :hide 21
  a=a+1:if a=3 then a=0
return
Sleep
Revenir en haut Aller en bas
dragonno




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

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptyDim 5 Déc 2010 - 14:09

A ce stade, le sujet sur le on_close() est résolu, suite à l'intervention de Jack Wink

Bonne continuation les amis ^^

Maitre klaus :
Citation :
C'est Windows qui gère cet évènement (à partir de la croix rouge, de l'effet de la commande "close" ou de la fonction "Terminer le processus" du gestionnaire des tâches de Windows). Dans tous les cas, la fenêtre est morte.
C'est la deuxième intervention où tu dis une chose qui, dans la réalité de la programmation est vraie, mais que Delphi contourne sans problèmes, pour ce cas par exemple, Delphi permet de pouvoir annuler l'effet du click sur la croix de la fenetre après le on_close().
Je l'ai appliqué récemment sur mon jeu de gangsters.

La premiere intervention c'était sur la gestion multi-touches du clavier, et pareil Delphi y arrive très bien, donc windows n'est pas toujours le maître.
Revenir en haut Aller en bas
jimx78

jimx78


Nombre de messages : 241
Age : 32
Localisation : Yvelines
Date d'inscription : 24/05/2010

Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE EmptyDim 5 Déc 2010 - 15:12

Salut tout le monde.

Le seul truc que l'on peu faire pour le moment pour annuler le on_close est le suivant:

Code:

hide 0
dim quitte
label actualiser_affichage , quitter_oui_ou_non

form 1 : caption 1,caption$(0) : height 1,480 : width 1,600 : on_close 1,quitter_oui_ou_non : command_target_is 1

' ici on met les commandes comme pour le form 0 alors que c'est le form 1!

timer 2 : timer_interval 2,40 : on_timer 2,actualiser_affichage
end

actualiser_affichage:
if quitte=1 then show 1
return

quitter_oui_ou_non:
if message_confirmation_yes_no("Vous voulez vraiment fermer ?") = 1
terminate
else
quitte=1
end_if
return


J'espère ne pas faire de hors sujet car sur celui-ci en particulier nous avons du mal a nous comprendre les un des autres^^

Wink
Revenir en haut Aller en bas
Contenu sponsorisé





Fonctionnement de ON_CLOSE Empty
MessageSujet: Re: Fonctionnement de ON_CLOSE   Fonctionnement de ON_CLOSE Empty

Revenir en haut Aller en bas
 
Fonctionnement de ON_CLOSE
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Un problème avec PANORAMIC?-
Sauter vers: