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
» Détection connexion internet
par JL35 Aujourd'hui à 18:39

» Le parcours du cavalier sur un échiquier 8 x 8
par pascal10000 Hier à 13:26

» Casse-tête : Echanger les positions des cavaliers
par papydall Sam 22 Juil 2017 - 19:42

» Compilateur FBPano
par jean_debord Sam 22 Juil 2017 - 10:54

» demande pour recuperer un text speciale
par pascal10000 Ven 21 Juil 2017 - 22:04

» KGF_dll - nouvelles versions
par Klaus Ven 21 Juil 2017 - 14:29

» Amélioration de la commande HINT
par papydall Mer 19 Juil 2017 - 3:30

» TEST SUR SHAPE
par papydall Mer 19 Juil 2017 - 1:17

» Un challenge à relever
par papydall Mar 18 Juil 2017 - 21:25

» Astuce : Indenter plusieurs lignes de code à la fois
par papydall Mar 18 Juil 2017 - 1:32

» Suggestion pour le forum
par papydall Lun 17 Juil 2017 - 20:28

» Truver les handles des onglets de Panoramic Editor
par Klaus Lun 17 Juil 2017 - 18:20

» Synedit_Editor - nouvelles versions
par Klaus Lun 17 Juil 2017 - 13:46

» Détermine si oui ou non un objet est PARENT d'un autre objet
par Klaus Dim 16 Juil 2017 - 11:58

» Une autre façon de terminer une application.
par papydall Dim 16 Juil 2017 - 3:53

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 Nouvelles fonctions: messages entre programmes Panoramic !

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

avatar

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

MessageSujet: Nouvelles fonctions: messages entre programmes Panoramic !   Lun 26 Avr 2010 - 19:59

Ca y est: grâce à la correction de la fonction adr(a$) par Jack, j'au pu intégrer mon outil d'envoi de messages texte entre programmes Panoramic ! Voilà un moyen simple d'échanger des données ou de synchroniser des programmes.

Un programme qui veut recevoir un message texte, doit déclarer un objet edit un peu particulier. Les valeurs pour top et left doivent être IDENTIQUES, NEGATIVES et INFERIEURS à -500. Ceci me permet d'identifier ce champ à partir d'un programme émetteur.

Rien n'interdit de déclarer plusieurs objets edit de ce type dans un même programme, avec des valeurs différentes bien sûr; on pourrait ainsi prévoir de recevoir des messages d'émetteurs différents, ou des messages de nature différente, etc. Ces champs servent en quelque sorte à définir un "canal" unidirectionnel.

Chacun de ces champs peut recevoir une déclaration d'évènement on_change ce qui permet de déclencher un traitement sur réception d'un message. Attention: le message suivant remplace le message précédemment reçu, qu'il ait été traité ou pas.

Il n'y a rien d'autre à faire dans programme récepteur.

Exemple:
Citation :

edit 17
top 17,-1234
left 17,-1234
on_change 17,message_recu_17
edit 18
top 18,-1234
left 18,-1234
on_change 18,message_recu_18



message_recu_17:
rem ici, text$(17) est le message du champ 17
return
message_recu_18:
rem ici, text$(18) est le message du champ 18
return


Le programme émetteur doit d'abord récupérer le handle du champ edit du programme récepteur. Pour cela, il suffit de connaître le nom (la caption de la form0 du programme récepteur) et l'identifiant qui est la valeur (négative) pour top et left du champ de destination.

Il y a alors une nouvelle fonction dans KGF.dll qui récupère ce handle, de la manière suivante:
Citation :

dim nom$,id%,hand%

nom$ = "Titre de la fenêtre de destination"
id% = -1234
hand% = dll_call3("IPCGetHandle",adr(nom$),len(nom$),i%)

si hand%=0, le programme n'a pas été trouvé ou n'a pas de champ edit avec un top et left égal à id%.

Maintenant, on peut envoyer des messages. Pour cela, il y a une autre fonction dans KGF.dll qui utilise le handle récupéré par PCGetHandle:
Citation :

dim mes$,ret%

mes$ = "Message texte à envoyer"
ret% = dll_call3("IPGSendMessage",adr(mes$),len(mes$),hand%)


et le tour est joué.

Bien sûr, si l'on veut obtenir une communication bi-directionnelle, il faut que les deux programmes déclarent un champ edit de ce type, et utilisent tous les deux la routine IPCGetHand pour trouver le handle correspondant.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
 
Nouvelles fonctions: messages entre programmes Panoramic !
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Programmes Panoramic en ligne de commande
» Séparation entre 2 messages
» Augmenter la séparation entre les messages - PhpBB2
» Code ligne séparation entre Note et messages
» Modifier les traits de séparations entre les colones, sujets, messages, derniers messages...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: