Gambas France BETA


Pas de compte ? Incription

[Résolu] Fenêtre et Module....

Ce sujet est résolu.

1
AuteurMessages
Foromus#1 Posté le 18/1/2010 à 17:42:00
Bonjour,

Voilà, je me suis dit que, une seule fenêtre FMain, c'est bien, mais ça fait quand même "petit joueur"...
J'ai donc créé une nouvelle feuille, Form1, et comme c'était banal, j'ai dépabtisé ma FMain, en FOtchose, et repabtisé ma Form1 en FMain... De manière à démarrer par ma nouvelle feuille, évidemment.
Ensuite, comme ça démarre par la FMain, et qu'il n'y avait rien dessus, j'ai mis un bouton pour appeler FOtchose, et je le fais par la méthode Show (comme en VB d'ailleurs).
Si ce n'est pas la bonne formule, ou si vous en connaissez une meilleure, faites-moi signe !
Dans la foulée, dites-moi aussi si je puis utiliser la méthode Hide pour cacher une fenêtre (ou si je la laisse derrière pas entassement..).
Bien, comme je suis consciencieux, je me dis que pour arrêter correctement un programme, il faut fermer toutes les fenêtres avant de Quit.
Dans ce but (et pour le futur), j'ai créé un module. Dans ce module, j'ai mis une Sub "Fermeture", routine qui devrait pouvoir être appelée depuis n'importe quelle feuille (pour l'instant, il n'y en a que 2, mais ça va augmenter, c'est sûr).
Donc, sur mes deux feuilles, j'ai mis un bouton Quitter qui n'a qu'une seule fonction : appeler "Fermeture" qui réside dans le module.
Malheureusement pour moi, ça ne colle pas, Fermeture n'est pas reconnu dans les feuilles !
Non seulement ça n'arrête rien mais je ne peux même pas démarrer...
Pour l'instant, ma solution reste un bouton sur chaque feuille. Tant qu'il n'y en a que 2, ça va, quand il y en aura une dizaine, il faudra répéter la litanie à chaque fois, c'est embêtant...

Vous avez une solution ?

Merci
manu#2 Posté le 18/1/2010 à 19:32:00
Avec Gambas ca roule !Changer Form1 en FMain ne te fera pas demarrer dessus.

Pour choisir le formulaire sur lequel le programe doit démarrer, tu clique droit sur celui de ton choix et tu choisis Classe de démarrage.Comme tu viens de le lire, c'est une classe que tu choisis et non un formulaire ce qui signifie que tu choisie de demarrer une classe d'un formulaire. Tu peux aussi choisir de demarrer sur une utre classe ou sur un module.

Un petit rond avec une fleche vers la droite apparaitra à coté de ton form (ou de ta classe.)

D'autre part, je ne comprends pas l'interet d'ouvrir plein de formulaire en même temps...et de les fermer ensuite tous en même temps? Si c'est le cas, ca risque d'être un jolie m..... et bonjour l'utilisation !

Pour le faire, tu as la fonction Quit qui ferme tous et termine le programme. C'est fonction n'est cependant pas très recommandé par la doc que je t'invite à consulter.

Enfin, quand tu crée une fonction que tu veux disponible dans d'autre classe, elle doit etre publique bien sur et tu dois, pour l'appeler taper le nom de ton module.le nom de ta fonction :

1
MonModule.MaFonction()




Enfin, je te suggère de lire le wiki et les tutos de gambas linux car toute cette prise ne main de l'IDE y est expliqué à plusieurs reprise. Enfin, et c'est sans doute le plus important, je t'invite a faire ton apprentissage en réalisant une petite application simple, que tu puisses finir. Tu verra que en ayant un but, on trouve plus facilement les soultions et c'est comme ca que l'on apprends enfin à mon avis. :lol:
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
Foromus#3 Posté le 18/1/2010 à 20:10:00
Bien, merci pour toutes ces informations.

Renommer ma Form1 en FMain m'a bien permis de démarrer dessus. Mais j'ai fait ça hors Gambas. Mais je note la possibilité démarrer par la feuille que je veux, c'est intéressant, et surtout, beaucoup plus rationnel.
Pour ce qui est d'ouvrir plusieurs formulaires en même temps (ou feuilles), tout dépend de ce que l'on a à faire, et on peut avoir besoin d'appeler à tout moment une feuille ou l'autre. Je sais que pour mon dernier programme en VB, j'avais une quinzaine de feuilles, donc, plusieurs restaient ouvertes à disposition, même si une seule est affichée à la fois. Ce n'est pas forcément une jolie m... , avec un peu d'organisation, ça se passe très bien !
Ma fonction "Fermeture" fonctionne, il suffisait de bien l'appeler.

Pour les tutos, j'en ai déjà lu pas mal, mais le système du code à télécharger puis à installer ne correspond pas vraiment à ma façon d'apprendre.

Je suis effectivement en train de me faire une application d'apprentissage si je puis dire, j'ai compilé tout ce que j'ai appris, et si ça intéresse des gens, je mettrai à disposition (40 pages pour l'instant).
Maintenant, pour l'apprentissage, c'est assez personnel, une méthode peut convenir à l'un pas forcément à l'autre, c'est même le problème de l'enseignement collectif.
Bon, mais les conseils, j'aime bien, mon gamin de 40 ans m'en donnent parfois... Il y a toujours à apprendre des autres !
Foromus#4 Posté le 19/1/2010 à 11:42:00
Bonjour
J'ai testé la possibilité de mettre en démarrage la feuille que je veux. Cela peut être intéressant.
Cela fait, je remarque que la précédente feuille FMain, est toujours là (heureusement ! ) mais impossible à renommer. Ou alors, et si on souhaite renommer, il faut faire que j'ai fait la première fois, hors Gambas.
Beaucoup d'applications s'ouvrent par une fenêtre dédiée, VB d'ailleurs en possède une pré-établie. Ceci est intéressant, bien que les machines actuelles prennent peu de temps pour charger l'application et les fichiers nécessaires. Il n'en reste pas moins vrai que cela fait partie du folklore. J'en déduis donc qu'à l'avenir, il faudra que je me réserve la FMain pour le démarrage, et construise mon application sur d'autres feuilles. Au fond, une autre habitude à prendre.
Pour l'utilisation des modules, j'ai l'impression que c'est différent de VB, ne serait-ce que pour les appels qui ne semblent plus aussi simples. Mais cela présente peut-être l'avantage d'avoir des éléments mieux sériés.
manu#5 Posté le 19/1/2010 à 12:48:00
Avec Gambas ca roule !

Cela fait, je remarque que la précédente feuille FMain, est toujours là (heureusement ! ) mais impossible à renommer. Ou alors, et si on souhaite renommer, il faut faire que j'ai fait la première fois, hors Gambas.




Non Foromus !!! tu peux renommer tous les forms que tu veux qu'il s'appelle FMain ou FMachin qu'ils soit le form de démarrage ou pas !

tu te met dessus, tu fais clique droit ou f2 ou tu double clique avec ta souris dessus, tu modifies le nom et tu valide par Enter . Tous simplement !

D'autre part je te conseil de pas trop jouer sur les fichiers class et Form car c'est un peu differents dans GB3 d'autant que tu peux pratiquement tous faire dans l'IDE.


:lol:
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
Foromus#6 Posté le 19/1/2010 à 13:00:00
Oui, c'est ce que j'ai fait, mais l'ancien nom (FMAin) est revenu !
spheris#7 Posté le 19/1/2010 à 13:03:00
L'avais tu décoché de la classe de démarrage ,le fmain ?
Foromus#8 Posté le 19/1/2010 à 13:06:00
Il n'y avait rien a décoché puisqu'il ne peut y avoir qu'une seule Form de démarrage !
manu#9 Posté le 19/1/2010 à 13:09:00
Avec Gambas ca roule !Je t'assure que si, ça marche comme je t'ais dit, mais il arrive que ce soit capricieux. Je viens encore de reessayer sur le form de démarrage et ça fonctionne...a moins que ce soit un plb de version mais je ne crois pas...
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
micio#10 Posté le 19/1/2010 à 13:13:00
On peut aussi démarrer à partir d'un module

1
' Gambas module filePUBLIC SUB Main() ' traittement divers ' ... ' ... ' ... ' ouverture d'une fenetre form01.ShowEND
Foromus#11 Posté le 19/1/2010 à 13:14:00
Bah, inutile de s'affoler avec ça, ce n'est pas très important, je verrai éventuellement quand j'aurai la version 2.18 (voir mon post à ce sujet).
L'important est de savoir qu'il y a des solutions !
Foromus#12 Posté le 19/1/2010 à 13:18:00
Effectivement, j'avais vu dans un tuto cette possibilité, avec l'utilisation du terminal.
Mais il existe effectivement des applications qui n'affichent rien à l'écran. Mais jusqu'à présent, je n'ai pas eu l'occasion d'en écrire (en VB j'entends).
gambix#13 Posté le 19/1/2010 à 19:39:00
Faire simple !bien foromus ... tu ne peu pas renomer un fichier avec le nom d'un fichier existant même si tu change la casse de certaine lettre. ensuite tu doit faire entrer pour que le nom soit pris en compte... un click de coté annule.

pour fermer des formulaire c'est form.close



'Déclenché au premier affichage du formulaire 1
Public sub form_open

Form2.Show

End

'déclenché lors de la fermeture du formulaire 1
Public sub Form_Close
'ferme Form2
Form2.close

End
Moins de texte dans une signature c'est agrandir son espace.
Foromus#14 Posté le 19/1/2010 à 19:57:00
bien foromus ... tu ne peu pas renomer un fichier avec le nom d'un fichier existant même si tu change la casse de certaine lettre. ensuite tu doit faire entrer pour que le nom soit pris en compte... un click de coté annule.


C'est effectivement la règle pour tout fichier et pour toutes les distributions ! Et heureusement ! Se retrouver avec plusieurs fichiers de même nom dans un répertoire, ça serait assez difficile à gérer.

Bon, pour l'instant, mon souci du moment, c'est 2.19....
1