Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 19 January 2004 15:52

Remi Laborde
Invité

Creation d'une application englobant plusieurs MBX

Bonjour a tous.
J'ai developpe sous MapBasic plusieurs petites applications utilisables sous MapInfo. (Deplacement de la carte vers un lieu precis, Ouverture de table simplifiee…)
Ce sont des applications simples et qui s'executent de maniere autonome.
Je souhaite regrouper ces programmes dans la meme application et barre de menu.
La facon la plus simple consisterait a regrouper le code dans le meme programme afin d'avoir un seul et unique programme, mais je trouve cette solution ni rigoureuse, ni perene, dans le sens ou je ne pourrai pas facilement apporter de modifications aux differents sous programmes.
La solution la plus adaptee serait d'utiliser le projet de MapBasic avec la creation du programme de base qui contiendrait la creation de la barre d'outil (mbx/mbp) et les sous programmes appeles par la barre d'outil (mbo). Chaque module pourrait etre modifie independamment des autres.
J'ai lu les explications dans l'aide MapBasic, mais je n'arrive pas a faire fonctionner le mbp des erreur sont systematiquement presentes lors de la creation du lien. Il semblerait que cela vienne de la declaration des programmes.
Auriez vous, s'il vous plait, des explications claires a ce sujet, si possible avec un exemple simple afin que je comprenne le fonctionnement ou alors un autre moyen de faire ce que je souhaite.
Merci d'avance pour vos reponses

 

#2 Mon 19 January 2004 18:30

Geo Maumet
Invité

Re: Creation d'une application englobant plusieurs MBX

Bonjour,
Il semblerait que vos modules soient compilés en mbx. Pour pouvoir creer un projet, il faut que les module soient des mbo. Pour cela vos differents modules doivent avoir un lien vers un fichier exterieur. Par exemple un variable.def qui regroupe toutes les variables de vos modules et ajouter un Include qui pointe vers le .def.

 

#3 Tue 20 January 2004 09:42

Jplartigau
Invité

Re: Creation d'une application englobant plusieurs MBX

La solution la plus simple est de faire un petit programme qui genere soit un menu soit un barre d'outils (ou les deux) et pour chaque option oui bouton lancer une subroutine qui contient la commande suivante
Run Application C:MAPBASICAPPnom_appli.MBX
avec des doubles cotes autour du nom de l'appli et de son chemin.
Ainsi vous avez une totale dependence des outils que vous pouvez toujours charger a la volee ou en faisant menu outils executer ....
d'autre part cette solution permet de faire rapidement des menus et barres d'outils mpersonnalises en fonction d'un ou plusieurs utilisateurs (ou groupes d'utilisateurs) potentiels. Ce programme peut etre lance automatiquement a chaque session de Mapinfo en le mettant dans le gestionnaire d'outils du menu outils...
Tout cela est tres simple et tres efficace tant que les programmes sont independants (Sinon projet mapbasic tres simple)

Pour les projets je confirme l'info de la premiere reponse a savoir
un fichier toto.def doit contenir la declaration des fonctions principales de chacun des programmes. Dans ce cas je pense qu'il est necessaire (je l'ai toujours fait ainsi) de renommer le main de chaque programme par un nom explicite. Dans chaque programme la declaration de la fonction main renommer se fait par la commande
include "toto.def" (double cotes autour de toto.def)
bien evidemment le programme qui contient lui la fonction main doit aussi avoir cette commande include pour reconnaitre les fonctions qu'il appelle. J'espere avoir ete assez clair.

Bonne programmation..

 

Pied de page des forums

Powered by FluxBB