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
» Planétarium virtuel.
par Pedro Alvarez Hier à 16:57

» Roues dentées
par jean_debord Hier à 10:40

» Attention arnaque !
par mindstorm Jeu 19 Juil 2018 - 19:18

» Qui fait quoi ?
par silverman Mer 18 Juil 2018 - 15:21

» ITEM_SELECT N,L pour synedit
par silverman Mer 18 Juil 2018 - 15:20

» Boussole
par jean_debord Mer 18 Juil 2018 - 11:06

» Roue à n faces
par Marc Dim 15 Juil 2018 - 22:16

» Exemple d'une nouvelle version d'un GRID
par Jean Claude Ven 13 Juil 2018 - 10:32

» Une simple question
par Oscaribout Sam 7 Juil 2018 - 23:20

» BUG sur l'objet TAB
par Jack Sam 7 Juil 2018 - 21:12

» Monopoly moderne
par jjn4 Sam 7 Juil 2018 - 15:06

» Récapitulatif ludothèque panoramic jjn4
par jjn4 Ven 6 Juil 2018 - 17:41

» Lignes ondulées
par JL35 Ven 6 Juil 2018 - 17:39

» bug off_activate 0 : sans d'effet
par silverman Ven 6 Juil 2018 - 13:02

» Position des objets d'un conteneur dans FBPano et Panoramic
par Navigateur Ven 6 Juil 2018 - 12:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2018
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 bug : SHOW_MODAL bloque les évènements

Aller en bas 
AuteurMessage
silverman

avatar

Nombre de messages : 659
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 : 1868
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 : 659
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: