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 - demandes ou suggestions de modifications ou ajouts
par pascal10000 Aujourd'hui à 16:47

» KGF_dll - nouvelles versions
par Klaus Aujourd'hui à 16:47

» track_bar circulaire
par Klaus Aujourd'hui à 13:54

» API Windows
par Klaus Aujourd'hui à 3:21

» Cartes de voeux, menus, etc.
par JL35 Hier à 17:48

» Mah-Jong européen new-look
par jjn4 Hier à 15:48

» a l'aide klaus
par Minibug Hier à 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Hier à 0:16

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

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

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 | 
 

 Version instantanée V 0.9.28i10 du 24/06/2017

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 12:49

Cette version instantanée V 0.9.28i10 corrige les bugs constatés sur les commandes EXECUTE et EXECUTE_WAIT
- des espaces dans le nom absolu de l'exécutable,
- des mauvais passages de paramètres.

La syntaxe pour EXECUTE et EXECUTE_WAIT est la même :
EXECUTE "fichier.exe" ou "fichier.exe|parametre"
EXECUTE_WAIT "fichier.exe" ou "fichier.exe|parametre"

Les paramètres sont séparés par le caractère pipe (|) et s'il y a plusieurs paramètres, ils sont séparés par des blancs. La documentation sera modifiée.

Exemple avec EXECUTE, et avec un mon absolu contenant un espace :

1 - s'il n'y a aucun paramètre
Code:
execute "C:\mon dossier\recepteur.exe"
ou, bien sur
Code:
v$="C:\mon dossier\recepteur.exe"
execute v$

2 - s'il y a par exemple 3 paramètres
Code:
execute "C:\mon dossier\recepteur.exe|12 34 56"


Avec recepteur.exe qui correspond par exemple au source :
Code:
message Param_value$(1)+chr$(13)+Param_value$(2)+chr$(13)+Param_value$(3)
J'en profite pour rappeler que le premier paramètre est récupéré par Param_value$(1) et non Param_value$(0)

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 24 Juin 2017 - 12:57

cheers Super, merci Jack !

Voilà qui va solutionner pas mal de choses. 
Tu vas pouvoir rayé une ligne de la todo_list  Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Minibug

avatar

Nombre de messages : 2408
Age : 51
Localisation : Vienne (86)
Date d'inscription : 10/02/2012

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 13:17

Merci Jack !  cheers

Je vois que des modifications ont été apportés a l’éditeur. Son aspect est quelque peu modifié. drunken
Sûrement la nouvelle version de Delphi...

J'ai l'impression que les bugs au démarrage ont disparus du moins pour le moment et le tout semble plus rapide à l’exécution du code !

Avez vous la même impression ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
silverman

avatar

Nombre de messages : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 14:07

Le pb des espaces est réglé, mais ceci ne fonctionne pas correctement:
Code:
execute "C:\mon dossier\recepteur.exe|abcd.bas"
"abcd.bas" n'est pas reconnu comme un paramètre, mais est lancé comme un fichier à éxécuter, donc message d'erreur "erreur externe, fichier introuvable". Puis après acquittement de l'erreur, "recepteur.exe" est éxécuté et retrouve bien "abcd.bas" en paramètre.
Cependant, si le nom de fichier est un ".bas" valide, il est éxécuté alors que c'est un ".bas" et "recepteur.exe" est ignoré.

Par contre:
Code:
execute "C:\mon dossier\recepteur.exe|abcd.bas 12" ou execute "C:\mon dossier\recepteur.exe|12  abcd.bas"
La, pas de pb, "12" et "abcd.bas" sont tous les 2 reconnus comme paramètres.



Les fichiers utilisés pour tester:
dans l'éditeur
Code:
execute_wait "C:\Program Files\Panoramic Editor V 0.9.25\param_value.exe|test.bas 12"
message "fini!"

"param_value.bas" compilé en "param_value.exe"
Code:
dim i
for i=0 to param_number
print "paramètre n°";i;" = ";param_value$(i)
next i

"test.bas"
Code:
message "coucou"
terminate
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5086
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 14:22

Super, merci Jack.

De mon coté, j'ai fait une constation: j'avais un problème de collage avec l'objet SYNEDIT par Ctrl+V (voir ici). Ce problème a disparu, sans que je touche à mon code.

J'en conclus (peut-être hâtivement) que cette nouvelle version va plus loin que la simple correction des bugs sur EXECUTE.


Fausse joie, j'avais mis des barrages dans mon programme qui m'ont dérouté du chemin. Tout ce que je viens d'écrire ne tient pas. (Dommage).

Pour répondre à Laurent, je n'ai rien remarqué concernant l'aspect de l'éditeur, mais c'est peut-être une question d'OS.

On avance, on avance ... cheers

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 15:15

@silverman:

silverman a écrit:
"param_value.bas" compilé en "param_value.exe"
Code:
dim i
for i=0 to param_number
print "paramètre n°";i;" = ";param_value$(i)
next i

Tu n'as donc pas lu la dernière ligne de mon post:

J'en profite pour rappeler que le premier paramètre est récupéré par Param_value$(1) et non Param_value$(0)

Je retire momentanément cette version, j'y ajoute un déclenchement d'erreur lorsqu'on utilise PARAM_VALUE$(0).
Ainsi, ce sera réglé ...

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 24 Juin 2017 - 15:25

Non ! affraid


Jack, KGF.dll se sert de Param_value$(0) il me semble pour une de ses fonctions.
C' est à nous d' écrire correctement la récupération des paramètres.

Cette mesure risque de brider KGF.dll et ce n' est vraiment pas une bonne idée.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 15:32

@yannick:
yannick a écrit:
C' est à nous d' écrire correctement la récupération des paramètres.

Param_value$(0) n'est pas un paramètre, c'est le nom de l'application elle-même.

Tous les forums recommandent de ne pas utiliser Param_value$(0) comme nom d'application car ce n'est pas fiable. J'ai connu des déboires avec ce paramètre dans l'éditeur Panoramic de MACOS ...

Par exemple dans la documentation de FreePascal (et ils sont des dizaines dans ce cas):

https://www.freepascal.org/docs-html/rtl/system/paramstr.html

tu peux y lire:
"Therefore, ParamStr(0) should be used with care. "

Interdire (par un déclenchement d'erreur) l'utilisation de Param_value$(0) va dans le sens de la fiabilité, mais va aussi m'éviter d'intervenir dans ce forum pour expliquer que le premier paramètre a l'indice 1 et non 0 à tous ceux qui vont crier "au bug !" en pensant que le premier paramètre a l'indice 0.

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 24 Juin 2017 - 16:22

Bon, ok.

Maintenant, je t' invite à mettre les deux source suivant en executable avec la version 28i10
dans un dossier sur le bureau.

- Lances Test_Outils.exe
- Dans le combo tu ne dois avoir que PanoColor.exe que tu sélectionnes
- Clique sur le bouton "Lancer"
( tu dois avoir un message d' erreur chiant mais pas bloquant, cliques sur ok )
- PanoColor.exe est lancé
- Cliques sur le bouton "Renvoi"
- PanoColor se ferme
(si tout ce passe comme chez moi, tu dois avoir 0 sur les deux lignes de Retour de Test_Outils)
 - Re-cliques sur le bouton "Lancer"
(si tout ce passe comme chez moi, tu dois avoir 1 et 500 sur les deux lignes de Retour de Test_Outils qui sont les valeurs normalement passées par la procédure SendMessage)

Le message est de trop
Le premier clic sur Renvoi devrait me renvoyer 1 et 500


Test_Outils.bas
Code:
hide 0
Variables()
Constantes()
Labels()
Init()
Gui()
RempListOutils()
show 0
end

sub Variables()
 dim no%
 dim HndF%
 dim Prg$
end_sub

sub Constantes()
 dim_local i%
 
 ' NOM DE L APPLICATION
 dim Titre$ : Titre$ = "Test Outils"
 Application_title Titre$
 
 ' DOSSIERS
 dim Path$ : Path$ = dir_current$
 if right$(Path$,1)="" : Path$ = left$(Path$,len(path$)-1) : end_if
 Path$ = Path$+""
 
 ' FICHIER EN LECTURE\ECRITURE
    dim F_Or% : no%=no%+1 : F_Or%=no%
    dim F_Ow% : no%=no%+1 : F_Ow%=no%
 
 ' OBJETS
 dim Alph%(6) : for i%=1 to 6 : no%=no%+1 : Alph%(i%)=no% : next i%
 dim ListOutils% : no%=no%+1 : ListOutils%=no%
 dim BtnGo% : no%=no%+1 : BtnGo%=no%
end_sub

sub Labels()
 label Clic
 label TraiteEvent
end_sub

sub Init()
end_sub

sub Gui()

 height 0,250
 width 0,500
 top 0,50
 left 0,50
 
 font_name 0,""
 font_size 0,8
 font_bold 0
 Caption 0,Titre$
 
 on_user_event TraiteEvent
 
 alpha Alph%(1)
 top Alph%(1),10
 left Alph%(1),10
 caption Alph%(1),"Outils"
 
 combo ListOutils%
 width ListOutils%,200
 top ListOutils%,top(Alph%(1))+height(Alph%(1))+5
 left ListOutils%,10
 
 button BtnGo%
 height BtnGo%,height(ListOutils%)
 width BtnGo%,50
 top BtnGo%,top(ListOutils%)
 left BtnGo%,left(ListOutils%)+width(ListOutils%)+5
 caption BtnGo%,"Lancer"
 cursor_point BtnGo%
 on_click BtnGo%,Clic
 
 alpha Alph%(2)
 top Alph%(2),top(ListOutils%)+height(ListOutils%)+10
 left Alph%(2),10
 caption Alph%(2),"Envoi :"
 
 alpha Alph%(3)
 top Alph%(3),top(ListOutils%)+height(ListOutils%)+40
 left Alph%(3),10
 font_color Alph%(3),0,0,200
 caption Alph%(3),"-"
 
 alpha Alph%(4)
 top Alph%(4),top(ListOutils%)+height(ListOutils%)+70
 left Alph%(4),10
 caption Alph%(4),"Retours :"
 
 alpha Alph%(5)
 top Alph%(5),top(ListOutils%)+height(ListOutils%)+100
 left Alph%(5),10
 font_color Alph%(5),0,0,200
 caption Alph%(5),"-"

 alpha Alph%(6)
 top Alph%(6),top(ListOutils%)+height(ListOutils%)+130
 left Alph%(6),10
 font_color Alph%(6),0,0,200
 caption Alph%(6),"-"
        
end_sub

' ! MENU CLIC
Clic:
 HndF% = handle_form(caption$(0))
 Prg$ = item_index$(ListOutils%)+"|"+str$(HndF%)
 caption Alph%(3),Prg$
 Execute Prg$
return
' -

' ! TRAITEMENT DES EVENENEMTS
TraiteEvent:
 off_user_event
 caption Alph%(5),str$(USER_EVENT_LPARAM)
 caption Alph%(6),str$(USER_EVENT_WPARAM)
 on_user_event TraiteEvent
return
' -

sub RempListOutils()
        dim_local a$
        
 dir_change Path$
 a$ = file_find_first$
 if file_extract_extension$(a$) = ".exe" and file_extract_name$(a$)<>"Test_Outils.exe" : item_add ListOutils%,a$ : end_if
 a$ = file_find_next$
 while a$ <> "_"
 if file_extract_extension$(a$) = ".exe" and file_extract_name$(a$)<>"Test_Outils.exe" : item_add ListOutils%,a$ : end_if
 a$ = file_find_next$
 end_while
 file_find_close
end_sub





PanoColor.bas
Code:
' DECLARATION ET INITIALISATION DES VARIABLES
dim ReceiveHnd% : ReceiveHnd% = Param_value$(1)
dim event_index% : event_index%= 4024
dim user32% : user32%=2

' DECLARATION DES LABELS
label clic

' DECLARATION DES LIBRARY
LIBRARY user32%,"user32.dll"

' DECLARATION DES COMMAND
command "call_user_event","SendMessageA",user32%,"IIII","stdcall"

' INTERFACE
border_small 0
height 0,320
width 0,450
top 0,(screen_y-height(0))/2
left 0,(screen_x-width(0))/2
caption 0,"PanoColor"
      
font_name 0,"Arial"
font_size 0,8
font_color 0,85,85,127

alpha 1
top 1,20
left 1,20
caption 1,"Paramètre reçu : "+str$(ReceiveHnd%)

button 2
top 2,60
left 2,20
caption 2,"Renvoi"
cursor_point 2
on_click 2,Clic

end

Clic:
   Send_Color()
return

sub Send_Color()
   dim_local typ%,value%
 
   if ReceiveHnd%=0 : exit_sub : end_if
   typ%=1
   value% = 500
   call_user_event ReceiveHnd%,event_index%,typ%,value%
   terminate  
 end_sub


Suspectscratchaffraid

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 16:32

@Jack
Si, j'ai bien lu ton dernier post, et je l'ai parfaitement compris, mais le code que j'ai posté n'est qu'un exemple. Evidemment que je récupère bien les paramètres avec param_value$(1), mais j'utilise param_value$(0) pour récupérer le chemin de l'application.
J'ai des pb avec dir_current$. Panoramic editor memorise le dernier répertoire ouvert et ce répertoire est affiché par dir_current$. Si je charge plusieurs sources, dir_current$ change, à moins de fixer le nom du répertoire en debut du source. Mais si je fait cela et que compile en '.exe', l'exécutable ne marchera pas sur un pc autre que le mien. param_value$(0) est pour moi un moyen fiable d'obtenir le chemin de l'application.
Alors je suis daccord avec yannick, vu que j'utilise param_value$(0), ça ne m'arrange pas que ce paramètre devienne inaccessible.

EDIT:
voila comment je procède en début de source:
Code:
dim dir_application$
dir_application$=file_extract_path$(param_value$(0))
print dir_application$
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 17:03

@silverman:
Je reproduit effectivement le problème lorsqu'un nom de fichier est passé en premier paramètre.
Peut-être qu'en le décomposant en 2 parties le nom et l'extension et en reconstituant le nom complet dans le récepteur (nom$=fichier$+"."+extension$) on doit pouvoir contourner le problème ...

@yannick : idem, je reproduit l'erreur externe au passage du paramètre. Je vais chercher à comprendre ce qui se passe.

Je vais remettre la dernière version au téléchargement, sans déclenchement d'erreur sur param_value$(0)

J'ai regardé ton code; quelque chose ne va pas, dans Test_Outils.bas, tu utilises USER_EVENT_LPARAM et USER_EVENT_WPARAM juste après OFF_USER_EVENT.
Le OFF_USER_EVENT fait que les paramètres USER_EVENT_LPARAM et USER_EVENT_WPARAM ne sont plus traités car il n'y a plus de traitement de l'événement utilisateur. Quand tu les utilises la première fois, ils valent donc 0 comme toute variable Panoramic non initialisée (puisque tu viens par OFF_USER_EVENT de commander l'arrêt du traitement de l'événement utilisateur). Ensuite, au tour suivant, tu lis les valeurs précédentes et non pas les valeurs actuelles, car tu viens encore de commander la fin du traitement... etc ...
Cela explique pourquoi tu as 0 comme première valeur, puis toujours "un coup" en retard...

Pour me faire comprendre, pour la première fois, c'est un peu comme si tu mettais des items dans un LIST, et qu'avant de les lire, tu fait brutalement un CLEAR...

C'est sans doute mal expliqué dans la documentation (je vais la développer) mais tu vois bien dans l'exemple que les variables USER_EVENT_LPARAM et USER_EVENT_WPARAM sont exploitées avant le OFF_USER_EVENT.

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Jack
Admin
avatar

Nombre de messages : 1771
Date d'inscription : 28/05/2007

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 17:36

J'ai remis la version 0.9.28i10 au téléchargement.
J'ai ajouté un déclenchement d'erreur quand on tente de lire une variable USER_EVENT_LPARAM ou USER_EVENT_WPARAM alors que le traitement des événements utilisateur n'est pas actif.

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
silverman

avatar

Nombre de messages : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 17:38

Citation :
Peut-être qu'en le décomposant en 2 parties le nom et l'extension et en reconstituant le nom complet dans le récepteur (nom$=fichier$+"."+extension$) on doit pouvoir contourner le problème ...
En effet, ça marche parfaitement. J'avais imaginé ajouter un _ après la liste des paramètres:
Code:
execute_wait "C:\Program Files\Panoramic Editor V 0.9.25\param_value.exe|test.bas"+" _"
et en déduisant 1 à 'param_number' dans ma boucle de lecture.

Citation :
Je vais remettre la dernière version au téléchargement, sans déclenchement d'erreur sur param_value$(0)
Ouf, merci! Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 24 Juin 2017 - 19:13

@ Jack,

Merci de tes réponses.
J' ai compris tes explications. Je dois récupérer les valeurs avant le "off_user_event".
c' est mon utilisation de ce dernier qui bouchait le tuyau.
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 24 Juin 2017 - 19:33

Là je bug  scratch .

J' ai supprimé le "off_user_event' et le "on_user_event TraiteEvent" de "Clic:"
et c' est pareil.
Il me faut faire deux appels à "PanoColor.exe" pour avoir les bons retours.
Le premier retour est toujours deux 0 au lieu de 1 et 500.
Suspect
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5086
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 20:08

J' ai une piste qui marche, mais j'ai un message d'erreur qui me dit que le fichier n'a pas été trouvé mais en réalité si car ça fonctionne.J'ai déplacé off_user_event et on_user_event et j'ai utilisé EXECUTE_WAIT à la place de EXECUTE.

Test_Outils.bas
Code:
hide 0
Variables()
Constantes()
Labels()
Init()
Gui()
RempListOutils()
show 0
end

sub Variables()
 dim no%
 dim HndF%
 dim Prg$
end_sub

sub Constantes()
 dim_local i%
 
 ' NOM DE L APPLICATION
 dim Titre$ : Titre$ = "Test Outils"
 Application_title Titre$
 
 ' DOSSIERS
 dim Path$ : Path$ = dir_current$
 if right$(Path$,1)="" : Path$ = left$(Path$,len(path$)-1) : end_if
 Path$ = Path$+""
 
 ' FICHIER EN LECTURE\ECRITURE
    dim F_Or% : no%=no%+1 : F_Or%=no%
    dim F_Ow% : no%=no%+1 : F_Ow%=no%
 
 ' OBJETS
 dim Alph%(6) : for i%=1 to 6 : no%=no%+1 : Alph%(i%)=no% : next i%
 dim ListOutils% : no%=no%+1 : ListOutils%=no%
 dim BtnGo% : no%=no%+1 : BtnGo%=no%
end_sub

sub Labels()
 label Clic
 label TraiteEvent
end_sub

sub Init()
end_sub

sub Gui()

 height 0,250
 width 0,500
 top 0,50
 left 0,50
 
 font_name 0,""
 font_size 0,8
 font_bold 0
 Caption 0,Titre$
 
 on_user_event TraiteEvent
 
 alpha Alph%(1)
 top Alph%(1),10
 left Alph%(1),10
 caption Alph%(1),"Outils"
 
 combo ListOutils%
 width ListOutils%,200
 top ListOutils%,top(Alph%(1))+height(Alph%(1))+5
 left ListOutils%,10
 
 button BtnGo%
 height BtnGo%,height(ListOutils%)
 width BtnGo%,50
 top BtnGo%,top(ListOutils%)
 left BtnGo%,left(ListOutils%)+width(ListOutils%)+5
 caption BtnGo%,"Lancer"
 cursor_point BtnGo%
 on_click BtnGo%,Clic
 
 alpha Alph%(2)
 top Alph%(2),top(ListOutils%)+height(ListOutils%)+10
 left Alph%(2),10
 caption Alph%(2),"Envoi :"
 
 alpha Alph%(3)
 top Alph%(3),top(ListOutils%)+height(ListOutils%)+40
 left Alph%(3),10
 font_color Alph%(3),0,0,200
 caption Alph%(3),"-"
 
 alpha Alph%(4)
 top Alph%(4),top(ListOutils%)+height(ListOutils%)+70
 left Alph%(4),10
 caption Alph%(4),"Retours :"
 
 alpha Alph%(5)
 top Alph%(5),top(ListOutils%)+height(ListOutils%)+100
 left Alph%(5),10
 font_color Alph%(5),0,0,200
 caption Alph%(5),"-"

 alpha Alph%(6)
 top Alph%(6),top(ListOutils%)+height(ListOutils%)+130
 left Alph%(6),10
 font_color Alph%(6),0,0,200
 caption Alph%(6),"-"
       
end_sub

' ! MENU CLIC
Clic:
 HndF% = handle_form(caption$(0))
 Prg$ = item_index$(ListOutils%)+"|"+str$(HndF%)
 caption Alph%(3),Prg$
 on_user_event TraiteEvent
  Execute_wait Prg$
return
' -

' ! TRAITEMENT DES EVENENEMTS
TraiteEvent:
 
 caption Alph%(5),str$(USER_EVENT_LPARAM)
 caption Alph%(6),str$(USER_EVENT_WPARAM)
off_user_event
return
' -

sub RempListOutils()
        dim_local a$
       
 dir_change Path$
 a$ = file_find_first$
 if file_extract_extension$(a$) = ".exe" and file_extract_name$(a$)<>"Test_Outils.exe" : item_add ListOutils%,a$ : end_if
 a$ = file_find_next$
 while a$ <> "_"
 if file_extract_extension$(a$) = ".exe" and file_extract_name$(a$)<>"Test_Outils.exe" : item_add ListOutils%,a$ : end_if
 a$ = file_find_next$
 end_while
 file_find_close
end_sub

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
silverman

avatar

Nombre de messages : 475
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 20:15

@yannick
Tu n'a pas de chance, tu es tombé sur un bug que klaus a remarqué aussi il y a qq temps, mais tu as réussi à le faire en 100% panoramic, chapeau bas! Very Happy
Je vais poster dans le sujet "Synedit Parameters", qui sera plus adapté. Sinon bonne nouvelle, tout fonctionne, cad plus de "message d' erreur chiant mais pas bloquant", et transmission correct des parametres(une bidouille qui semble fonctionner).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 24 Juin 2017 - 20:41

@ Jean Claude,

Effectivement avec "Execute_wait" on obtient le résultat du premier coup.
Mais ton déplacement fait doublon avec celui dans la sub "Gui()"
En tout cas, je prends en attendant mieux.
Laughing

Mais cela veut dire aussi qu' il faut que le programme appelé soit fermé pour 
que l' appelant reçoive des infos.
On ne peut pas ouvrir un programme multifonctions et renvoyer plusieurs infos
à l' appelant au fur et mesure du travail effectué avec l' appelé.
tongue drunken

@ Silverman,

Je sens une pointe d' ironie...
lol!
En tout cas, je me passerai de ce genre de découverte.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jean Claude

avatar

Nombre de messages : 5086
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Sam 24 Juin 2017 - 21:58

@Yannick,

Citation :
Mais ton déplacement fait doublon avec celui dans la sub "Gui()"

Oui, je n'ai pas été plus loin que d’ajouter "_WAIT" à EXECUTE  et de déplacer les commandes EVENT.
J'ai tenu compte de ce qu'a dit Jack et je me suis dit que le deuxième programme ne peut transmettre les infos qu'à la condition que le premier attende le résultat pour continuer.


Citation :
Mais cela veut dire aussi qu' il faut que le programme appelé soit fermé pour
que l' appelant reçoive des infos.

IDEM: l'appelant attend des infos de l'appelé, il faut bien que l'appelant attende que l'appelé redonne la main à l'appelant  Exclamation  Question
Si utilisateur ferme par la croix rouge sans répondre le retour est 0,0 , à toi de traiter ce cas dans ton code.

J'ai fait un essai en évitant le bouton retour du second programme, en plaçant Send_Color() avant END, ça marche très bien. Mais le retour par le bouton marche aussi.  
Je n'ai pas tester la fermeture de l'outil par la croix rouge de la fenêtre, mais je suis certain que ça doit marcher.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 24 Juin 2017 - 22:52

Ouais, ben, j' ai du boulot pour tout changer moi... Mad

lol!

En tout cas cela aura été une après midi plus que constructive et enrichissante. Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 25 Juin 2017 - 17:53

Si Execute et Execute_Wait ne sont plus sensible au espaces dans le nom du fichier à lancer,
je maintient tout de même ma demande de SHORT_NAME$(F) pour les paramètres.
Car, si l' on passe en paramètre un chemin complet de fichier et que celui ci contient un espace,
le paramètre en devient deux du fait de cet espace.


Je maintient aussi SEND_MESSAGE L,W car si procédure par user32.dll fonctionne pour Windows,
il n' en ait peut être pas de même pour MACOS ou ANDROID.
Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    Dim 25 Juin 2017 - 18:05

Citation :
Je maintient aussi SEND_MESSAGE L,W car si procédure par user32.dll fonctionne pour Windows,
il n' en ait peut être pas de même pour MACOS ou ANDROID.
C'est tout à fait spécifique à Windows. Le mécanisme des messages avec WPARAM et LPARAM est une spécificité de Windows.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 8002
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Dim 25 Juin 2017 - 18:19

Je ne sais pas si c' est une spécificité Windows mais User_Event_Lparam et Wparam
existent bel et bien et doivent, si j' ai bien compris, fonctionner sur les autres OS.

Si je les utilise dans un programme, il faut bien que je puisse initialiser les deux variables
depuis un programme serveur et les transmettre au programme client.
d' où la demande.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Version instantanée V 0.9.28i10 du 24/06/2017    

Revenir en haut Aller en bas
 
Version instantanée V 0.9.28i10 du 24/06/2017
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» version instantanée du 22 mai 2010: redimensionner SPRITE
» PANORAMIC_IDE: version instantanée du 25 septembre 2010
» Version instantanée 26 septembre 2014 : PANORAMIC V 0.9.26i2
» Version instantanée du 7 janvier 2015 : PANORAMIC V 0.9.26i5
» PANORAMIC_IDE: version instantanée du 20 septembre 2010

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Ce qui est en cours ...-
Sauter vers: