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
» 3D_LINE How to ?
par papydall Aujourd'hui à 6:51

» mise a jour calculatrice
par joeeee2017 Hier à 23:00

» supprimé
par joeeee2017 Dim 15 Oct 2017 - 20:02

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» Convertisseur de base 10 de 2 à 36
par gigi75 Sam 14 Oct 2017 - 21:54

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» supprimé
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

» Mise à jour PANOMAND
par jean_debord Mar 26 Sep 2017 - 11:33

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
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 : 10072
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
-
» Message d'erreur sur Annuler une boite de dialogue ouverte
» [Résolu] Outlook Express : impossible de supprimer le message
» [Résolu] Problème boite de réception Outlook Express
» [Résolu] OE6 : message bizarre
» [Résolu]peux t'on modifier un message déjà envoyé

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