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
» Calculatrice
par Minibug Aujourd'hui à 21:06

» EPP_V01 éditeur pour Panoramic
par Minibug Hier à 21:03

» [RESOLU] Quelle ligne est sélectionnée dans SYNEDIT ?
par Jean Claude Hier à 21:02

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

» Planétarium virtuel.
par Pedro Alvarez Hier à 9:28

» Demande pour Jack concernant PanExpress
par Marc Mar 18 Sep 2018 - 23:56

» Petit coucou en passant !
par Minibug Dim 16 Sep 2018 - 15:03

» bug SEVERE fnc+sub : variables globales corrompus
par silverman Dim 16 Sep 2018 - 13:38

» Verrouiller un form en avant plan
par silverman Dim 16 Sep 2018 - 12:50

» Fin de l'aventure.
par Pedro Alvarez Sam 15 Sep 2018 - 18:16

» Demande d'explications Sur File_Write & File_writeln
par Jack Sam 15 Sep 2018 - 17:26

» MEMO avec des possibilités de commande
par Oscaribout Mer 12 Sep 2018 - 1:06

» La théorie du chaos
par jean_debord Mar 11 Sep 2018 - 9:30

» Orbites de l’ensemble de Mandelbrot
par Jean Claude Lun 10 Sep 2018 - 21:08

» Version instantanée V 0.9.29i2 du 4/09/2018
par silverman Mer 5 Sep 2018 - 10:15

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

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

Partagez | 
 

 bug : SHOW_MODAL bloque les évènements

Aller en bas 
AuteurMessage
silverman

avatar

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

MessageSujet: bug : SHOW_MODAL bloque les évènements   Ven 9 Mar 2018 - 19:53

La commande SHOW_MODAL bloque les évènements de la fenêtre rendu modale, ce qui bloque le programme car plus aucune action n'est possible.
Code:
label test
'
form 10 : HIDE 10 : left 10,600
'
button 11 : caption 11,"Quitter" : parent 11,10 : on_click 11,test
'
SHOW_MODAL 10
END
test:
  terminate
return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: bug : SHOW_MODAL bloque les évènements   Ven 9 Mar 2018 - 22:30

Exact. C'est un bug. Fais comme ceci, en attendant la correction:
Code:
label test
'
form 10 : HIDE 10 : left 10,600
'
button 11 : caption 11,"Quitter" : parent 11,10 : on_click 11,test
'
' SHOW_MODAL 10
inactive 0
show 10
END
test:
  active 0
  hide 10
  to_foregound 0
  terminate : ' supprimer cette ligne pour revenir au programme de base...
return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jack
Admin
avatar

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

MessageSujet: Re: bug : SHOW_MODAL bloque les évènements   Dim 11 Mar 2018 - 21:20

Je ne pense pas que ce soit un bug.
Tel que je l'ai codé, après un SHOW_MODAL sur un FORM, ce FORM modal passe au premier plan et reste ainsi jusqu'à ce que l'utilisateur le ferme en cliquant sur la croix rouge.
Tout objet lié par PARENT à ce FORM (comme un bouton) reste lui aussi bloqué jusqu'à ce que l'utilisateur ferme le FORM, et il est normal que les événements n'agissent pas.

Code:
dim i%
label test
form 10 : HIDE 10 : left 10,600 : caption 10,"Form 10"
button 11 : caption 11,"Compter" : parent 11,10 : on_click 11,test
SHOW_MODAL 10
END
test:
i%=i%+1
caption 0,str$(i%)
return

Dans ce code, si on clique plusieurs fois sur le bouton de FORM 10, rien ne se passe. Tout est figé. Les événements sont empilés sans s'exécuter. Si on détruit ensuite FORM 10 en cliquant sur sa croix rouge, le nombre de clics s'affiche dans le bandeau de FORM0.

SHOW_MODAL avait été demandé sur le forum avec ce fonctionnement. Il fallait figer un FORM jusqu'à sa destruction, de la même manière qu'une fenêtre de la série MESSAGE fige tout et attend une action de l'utilisateur pour disparaître.

Voici la définition d'un FORM modal:
Citation :
A modal form is one where the application can't continue to run until the form is closed.
traduction:
Un FORM modal est un FORM pour lequel l'application ne peut pas continuer son exécution jusqu'à ce que le FORM soit fermé.

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

avatar

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

MessageSujet: Re: bug : SHOW_MODAL bloque les évènements   Lun 12 Mar 2018 - 0:16

Je regrette, Jack, mais je ne suis pas d'accord avec toi, pour une fois.

Si, En Delphi, j'ouvre une form avec SHOWMODAL, elle reste bien entendu active au-dessus de toutes les autres fenêtres de la même application, mais tous les objets de cette form affichée en SHOWMODAL sont actifs, que ce soit les boutons, les options qui peuvent changer d'état, les Edit dont un peut saisir le contenu, etc. J'ai d'ailleurs dans KGF.dll des fenêtres de dialogue qui peuvent s'afficher, qui sont ouvertes comme ça et dont évidemment tous les boutons sont actifs, et en particulier des boutons de validation ou annulation permettant de fermer la fenêtre proprement.

Il est facile de vérifier ce fonctionnement d'unr form Delphi affichée par ce mode. La différence, par rapport à l'affichage d'une form par la méthode simple SHOW, c'est que SHOWMODAL est une fonction retournant une valeur pouvant être positionnée dans le code fermant la fenêtre modale, informant ainsi le programme appelant de la suite à donner, alors qu'une fenêtre ouverte par SHOW existe en fait en parallèle, de façon totalement asynchrone avec le reste du programme.

Ce qui est vrai, c'est que les autres actions de l'application sont bloquées tant que la form montrée par SHOWMODAL ne sera pas fermée. Mais uniquement ces actions-là, pas cette de la form modale. Même un objet TTimer déclarée dans la form modale fonctionne, alors que les autres sont stoppés.

J'espère que tu ne m'en voudras pas d'intervenir de cette façon, mais je parle de ce que j'utilise couramment dans KGF.dll ainsi que dans les programmes Delphi indépendants. Et, d'ailleurs, il n'est même pas besoin de déclarer une telle form avec des options spéciales (telles que les fenêtres de dialogues de Windows), la simple méthoce SHOWMODAL est suffisante.

EDIT

On peut parfaitement simuler le comportement correct du SHOWMODAL en Panoramic pur:
Code:
label close10
form 10 : hide 10 : on_close 10,close10 : ... ajouter ici tous les objets de la form 10
...
' pour SHOWMODAL:
inactive 0
show 10
to_foreground 10 : ' si nécessaire - habituellement, non utile
...
' ici, on a voulu fermer la form 10:
close10:
hide 10
active 0
to_foreground 0 : ' ici, c'est nécessaire !
Et voilà. Tous les objets de la form 10 sonc actifs, alors que les objets de la form 0 ne sont pas accesibles. Et en fermant la form 10 (même avec la croix rouge), tout redevient normal.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
silverman

avatar

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

MessageSujet: Re: bug : SHOW_MODAL bloque les évènements   Lun 12 Mar 2018 - 10:53

@jack
Je pensais que SHOW_MODAL fonctionnait tel que le décris klaus. Jimaginais pouvoir imposer un choix à l'utilisateur (comme OPEN_DIALOG/SAVE_DIALOG) avant de poursuivre le déroulé du programme
L'intérèt de cette commande tel qu'elle est ne me saute pas vraiment au yeux, puisque une fenetre MESSAGE fait la même chose.
Le code que tu montres provoque une erreur au dela de 5 click:

Il n'est pas rare que je l'obtienne avec les évènements empilés.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: bug : SHOW_MODAL bloque les évènements   

Revenir en haut Aller en bas
 
bug : SHOW_MODAL bloque les évènements
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» ordinateur portable qui se bloque
» Vérification rapport ZHP - PC lent, bloque souvent ("pas de réponse")
» Solution qui bloque les virus avant qu’ils ne se propagent
» L'image de mon GPS 1490T se bloque
» bmw navigator bloque sur calcul itinéraire

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