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
» Interception des touches quel que soit l'objet Panoramic
par Minibug Hier à 21:32

» Une copie de Panoramic Editeur
par Jean Claude Hier à 21:02

» KGF_dll - nouvelles versions
par Klaus Hier à 0:13

» Animation 3D 4 faces avec le logo de Panoramic
par Marc Hier à 0:07

» Animation 3D 2 faces avec le logo de Panoramic
par Minibug Sam 26 Mai 2018 - 20:01

» [RESOLU] pas de caractères accentués dans resource hacker
par Minibug Ven 25 Mai 2018 - 13:50

» Panoramic et la 3D.
par Pedro Alvarez Ven 25 Mai 2018 - 9:34

» Problème mathématique en 3D
par Marc Jeu 24 Mai 2018 - 18:24

» Nouvelle version 0.33
par jean_debord Jeu 24 Mai 2018 - 9:02

» Reprise du développement et de la documentation
par Fredisland Jeu 24 Mai 2018 - 7:14

» Objet 3D_PLANE, réalisation d'un dé en 3D
par Marc Mar 22 Mai 2018 - 0:33

» Cacher la barre des tâches
par Klaus Lun 21 Mai 2018 - 21:27

» Une "base de connaissance" - pour jouer ou plus si affinité
par Minibug Lun 21 Mai 2018 - 10:29

» quel est ce comportement de Panoramic_editor
par Oscaribout Lun 21 Mai 2018 - 0:22

» Des FORM(s) Colorés
par Jean Claude Dim 20 Mai 2018 - 20:58

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2018
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 bug : SHOW_MODAL bloque les évènements

Aller en bas 
AuteurMessage
silverman

avatar

Nombre de messages : 615
Age : 45
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 : 1847
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.free-boards.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 : 615
Age : 45
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: