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
» un nouveau editeur panobasic
par pascal10000 Hier à 21:52

» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Jack Hier à 20:23

» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Hier à 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Hier à 19:58

» Compilateur FBPano
par jean_debord Hier à 8:49

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

» Troncature dans une image
par JL35 Mer 9 Aoû 2017 - 13:45

» A chacun son point de vue
par papydall Mar 8 Aoû 2017 - 17:20

» Problème avec les chaines de caractères
par bignono Dim 6 Aoû 2017 - 9:33

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 boite de message et stop

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Invité
Invité



MessageSujet: boite de message et stop   Sam 19 Fév 2011 - 14:26

nouvelle version 20.25h 20 février
Je mets ceci ici, car cela n'est utile pour la mise au point d'un programme.
Le problème:
Lorsqu'on mets au point un programme, on peut utiliser la commande STOP pour arréter, et maintenant continuer un programme. Mais cette boite a un inconvénient, qui n'est pas un bug, mais qui bloque tout. Avec la boite qui est active, il est impossible par exemple de déplacer le curseur d'un list, pour ce qu'il y a dedans. Tout est figé.

Donc j'ai fais cette forme qui a un memo et 2 boutons. Le memo permet de mettre des messages, pour connaitre par exemple la valeur d'une variable.
Il y a un bouton pour continuer le programme, et un autre pour fermer la boite.
Je l'ai fais sous forme d'#INCLUDE qu'il faut mettre dans la première partie du programme.

A la place du stop, l'appel se fait par GOSUB jStop ( soit:je stoppe)
On peux modifier évidemment les dimensions de la forme par:left jStop%,xx etc. Si on redimensionne la forme avec width et height, un gosub JPlace redimensionne le memo.
Pour mettre un message dans le memo: item_add JCri%," JCri% pour j'écris"
======================================================
ici la partie INCLUDE

Code:


      rem monté comme un include, dont appel de ce programme ici par #include nom_du_prog_stop.bas
      dim jStop% ,jContinu%,JCri% ,jferme% ,res%  :jStop%=9990:JCri%=9993
      label jContinu ,jStop ,jSort,jQuitte ,jPlace



   
      form jStop%:width jStop%,300:height jStop%,500:border_small jStop%:color jStop%,255,0,0 :hide jStop%
                  left jStop%,500:caption jStop%,"Boite de Message et de Stop"
      button jStop%+1:parent jStop%+1,jStop%:left jStop%+1,10:height jStop%+1,20:width jStop%+1,50
                    caption jStop%+1,"continu":on_click jStop%+1,jContinu

      button jStop%+2:parent jStop%+2,jStop%:left jStop%+2,80:height jStop%+2,20:width jStop%+2,50
                    caption jStop%+2,"Quitter" :on_click jstop%+2,jQuitte

      memo  JCri%:parent JCri%,jStop%:left JCri%,5:top JCri%,25:width JCri%,width(jStop%)-20
                    height JCri%,height(jStop%)-65:font_size JCri%,10
      goto jSort

' ------------------------------------------------------------------------------
jStop:
  show jStop%:show JCri%:jferme%=0:jcontinu%=0
  dll_on "C:\KGF.dll" :res% = dll_call2("WindowTopMost",handle(9990),1) :dll_off
  repeat
      wait 50
      gosub jQuitte
      if jContinu%=1 then hide jStop%:exit_repeat
  until clicked(jStop%+1)=1 or jContinu%>0
  jContinu%= mouse_left_down(jStop%+1) :jContinu%= mouse_left_down(jStop%+1):jContinu%= mouse_left_down(jStop%+1)
  if jContinu%=1
      dll_on "C:\KGF.dll" :res% = dll_call2("WindowTopMost",handle(9990),0)
      dll_off
      clear JCri%  :hide jStop%
  end_if
return
' ---------------------------------------------------------------------
jQuitte:
  jferme%= mouse_left_down(jStop%+2)
  jContinu%= mouse_left_down(jStop%+1):if jContinu%=1 then clear jCri%
  if jferme%=1
      dll_on "C:\KGF.dll"
      res% = dll_call2("WindowTopMost",handle(9990),0) :dll_off
      terminate
  end_if
return
' ---------------------------------------------------------------------
jContinu:
        jContinu%=1
return
' ---------------------------------------------------------------------
jPlace:
  ' si on modifie les dimensions de la form jStop%, avec Gosub jPlace, le memo Jcri% est dimensionné ici
  width JCri%,width(jStop%)-20  : height JCri%,height(jStop%)-65
return
' ********************************************************************************************
jSort:
  ' variable: jStop% pour modifier, déplacer la forme, JCri% (j'écris) pour mettre un message dans le mémo
  ' appel par gosub jStop (je stoppe)

==========================================================
un programme teste:

Code:

' label du programme normal
label teste

#include "Boite_message_Stop.bas"

  ' variable: jStop% pour modifier, déplacer la forme, JCri% (j'écris) pour mettre un message dans le mémo
  ' appel par gosub jStop (je stoppe)
' =============================================================================
rem      ici fin de l'include, donc il faut mettre en include les lignes 2 à 31

 on_click 0,teste

end
' ----------
teste:
  item_add JCri%,"stop 1 du programme. cliquez sur continu pour continuer"
  gosub jStop
  item_add JCri%,"stop 2 du programme, essaye du bouton terminer"
  wait 1000    :  gosub jStop
return

J'ai oublié: il faut cliquer sur la forme 0 pour faire apparaître le boite

Depuis cela m'a donner des idées de raccourcis:

Je m'amuse bien avec ma boite.
Ainsi @s pour gosub stop
@a pour item_add JCri%,...
@h pour height jStop%,...:gosub JPlace
@w pour weight jStop%,...gosub JPlace
Même avec Panoramic, on peut se faire des raccourcis.


Dernière édition par cosmos70 le Dim 20 Fév 2011 - 22:39, édité 2 fois
Revenir en haut Aller en bas
Invité
Invité



MessageSujet: Re: boite de message et stop   Dim 20 Fév 2011 - 3:44

Je lance la discution sur cette boite, non pas que cela soit intéressant pour se servir ou non de celle-ci, mais sur les problèmes posés.

Lorsque je l'ai créé au départ, cela a été tout seul, parce que pour fermer cette boite, je me suis servi de scancode et d'escarpe.

Mais pour le mettre sur le forum, j'ai eu l'idée peut-être stupide de mettre des boutons.
Et bien les boutons dans ce type de fonctionnement ça ne marchent pas.
Pourtant ça marche quand-même.
A vous de voir, si vous voulez qu'on en parle.
C'est un cas particulier de Panoramic.
Sleep
Revenir en haut Aller en bas
Klaus

avatar

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

MessageSujet: Re: boite de message et stop   Dim 20 Fév 2011 - 20:03

Oui, c'est intéressant. Je le prends et je vais voir comment je peux l'utiliser.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Invité
Invité



MessageSujet: Re: boite de message et stop   Dim 20 Fév 2011 - 22:20

Puisque tu es intéressé, c'est le moment de parler d'un problème, et de dire comment je l'ai résolu.

En elle-même montrer la boite à n'importe quel moment, n'est pas un problème avec show, mais cette apparition n'est pas un évènement. J'ai mis plusieurs heures pour que ça fonctionne.

La mise en place d'un bouton n'a aucune réaction, ni d'ailleurs avec clicked.
J'ai trouvé la solution: j'ai provoqué un évènement en faisant un gosub à l'intérieur de la boucle repeat/until pour faire réagir la fameuse file d'attente. Sinon même hide ne fonctionne pas. La seule chose qui permettait de sortir de repeat/until est scancode, le reste des testes de until ne servent à rien.
En faisant un détour, si je me souviens bien, le teste des boutons marchent (avec mouse_left_down, et non clicked.

A partir de cette idée, peut-être arriverons nous à trouver d'autre méthode.

Sinon le plus simple au départ, étant until scancode=27, mais je voulais mettre des boutons pour doubler la fontion stop.
Je vais mettre une nouvelle version, qui marche mieux, car dans un de mes programmes, je n'arrivais pas à fermer la boite. De plus j'utilise ta dll qui mettre en avant la boite, et ça ça devrait te faire plaisir.

Je rajoute que les raccourcis clavier que je montre, ne font pas parti du programme. Pour cela il faut passer par un préprocesseur, ce qui est mon cas vu que je ne me sers pas de notre éditeur.
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: boite de message et stop   

Revenir en haut Aller en bas
 
boite de message et stop
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème de largeur avec la messagerie
» Recherche de l' IP d'un message dans la boite MP
» Message d'erreur sur Annuler une boite de dialogue ouverte
» message bloqué dans ma boite d'envoi
» Message d'alerte apparaissant lorsque la boite de reception est pleine à 90 %

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Les inutilitaires-
Sauter vers: