Gambas France BETA


Pas de compte ? Incription

Deux programmes Gambas dans le même répertoire...

Ce sujet est résolu.

1
AuteurMessages
Foromus#1 Posté le 16/4/2013 à 09:08:01
Bonjour à tous,

Je vais faire un peu doublon avec le sujet de "La pendule d'argent"...
Voilà, j'ai un programme, et dedans, j'ai une page de "Paramètres", ou préférences, si vous voulez. Je trouve que ça fait un peu lourd, aussi, je me suis dit que ce serait bien d'avoir un programme distinct qui pourrait gérer tout ça. Cela dit, il semble qu'un programme Gambas occupe systématiquement un répertoire, dans ce cas précis, comment je fais avec deux programmes ?
Bon, je peux toujours développer dans un coin, et une fois obtenu mon programme.gambas, le balancer dans le répertoire du projet original (c'est d'ailleurs ce que je fais, mon programme est conçu et modifié dans un répertoire, utilisé dans un autre). Je souhaite mettre les deux programmes dans le même répertoire, tout simplement parce que tous les deux utiliseront les mêmes fichiers annexes, et dans ce cas, un simple chemin du type "Application.Path/Data/Fichier01" fonctionnera indifféremment sur un programme comme sur l'autre. Ce qui me permettrait de lancer tout ça depuis n'importe quel répertoire, du moment qu'il y aurait dedans les deux programmes.gambas et les sous-répertoires des fichiers.
Après et pour les lancer, c'est vrai, comme le demande "la pendule d'argent", ce serait bien de pouvoir lancer un programme à partir de l'autre, et réciproquement. A la limite, ça peut peut-être marcher avec la commande shell.

Qu'en pensent les spécialistes ?..
Merci de votre attention.
Flachy Joe#2 Posté le 16/4/2013 à 18:52:45
Iguane : Il Gambas Uniquement pour Activer ses NEuronesSalut,
pourquoi ne pas simplement sélectionner l'interface à lancer par un argument de la ligne de commande ? Ça te permet de faire facilement 2 lanceurs et tu n'as pas besoin de 2 projets ni de la commande shell.
Si ça met le bazar dans ton projet, créé simplement un sous-répertoire dans source dans lequel tu mets les formulaires et les modules qui ne concernent que les préférences.
Le code que j'imagine pour le lancement :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
' Gambas module file

'Return Args as String array
PRIVATE FUNCTION ArgsStr() AS String[]
DIM l AS INTEGER
DIM numparms AS INTEGER
DIM params AS NEW String[]
numparms = Application.Args.Count
FOR l = 0 TO numparms - 1
params.push(Application.Args[l])
NEXT
RETURN params
END


PUBLIC SUB Main()
IF ArgsStr().Exist("-options")
'Lance l'interface de paramétrage
FParam.Show()
ELSE
'lance le programme normal
FMain.Show()
ENDIF
END


Bonne continuation.
;) Flachy Joe ;)
Foromus#3 Posté le 19/4/2013 à 09:19:27
Bonjour,

Merci pour cette réponse.
A vrai dire, je ne suis pas trop à l'aise avec les fonctions élaborées, à la rigueur, avec les contrôles ça va à peu près, mais dès qu'il s'agit de trucs un peu plus abstraits, ça coince un peu...
En tous les cas, cette proposition me paraît intéressante, c'est à expérimenter.
Toutefois, je pense que dans mon cas précis, j'aimerais plutôt une formule plus exclusive : quand j'utilise un programme, je ferme l'autre, il va encore falloir que je réfléchisse à mon mode opératoire, que je fasse des essais, et pour l'heure, je n'ai pas vraiment le temps.
Je garde donc "sous le coude" la méthode proposée.
Au passage il me semble que pour l'autre discussion "Comment lancer un programme Gambas depuis un autre programme Gambas" n'a pas été clairement résolue (ou je n'ai pas tout vu, ce qui est possible...)

Compléments le 22 avril :
Suite à l'autre fil, j'ai la solution pour lancer un programme gambas depuis un autre, je crois que ça pourrait me convenir.
Dans ce cas, je fais mes programmes dans des répertoires différents, donc, sans gêne mutuelle, et ensuite, je mets les exe dans un même mais autre, répertoire.
Je considère donc ma demande comme résolue.
Au passage, et suite aux différentes mises à jour automatiques de Gambas, je découvre un nouvel éditeur. Quelques surprises, avec des contrôles qui s'effacent tous seuls (je ne sais pas pourquoi) et surtout, des boutons qui s'activent tous seuls également, c'est-à-dire, sans être sollicités. Je n'ai pas encore regardé cela de près, ne m'occupant que de mon code, mais je suppose que les contrôles ont maintenant un indice de focus (comme en VB), ce qui pourrait expliquer (enfin, un peu...), ce comportement bizarre. J'ai failli m'arracher les cheveux hier, en regardant dans un pas-à-pas, j'ai vu que le cursus sortait d'une procédure, et au lieu d'en rester là, comme il aurait dû le faire, il est passé directement dans un bouton_click, sans que je lui demande quoi que ce soit. Mais c'est une autre discussion que je lancerai si je retrouve le souci, pour l'instant, j'ai créé une inputbox non visible, et j'y mets le focus, donc et dans ce cas, le processus s'y arrête. Mais c'est juste une info...

Merci pour l'aide reçue !
1