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
» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 0:29

» track_bar circulaire
par Klaus Hier à 21:41

» Gestionnaire de Projets Panoramic
par Jean Claude Hier à 20:41

» Mah-Jong européen new-look
par Jean Claude Hier à 20:34

» Gestion de l'Unicode
par jean_debord Hier à 11:21

» Button_picture
par pascal10000 Jeu 14 Déc 2017 - 11:41

» Pourquoi le compilateur stagne
par Minibug Jeu 14 Déc 2017 - 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Jeu 14 Déc 2017 - 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Jeu 14 Déc 2017 - 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Jeu 14 Déc 2017 - 10:00

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
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 : 10262
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: