Page 1 sur 2

[R] Fermer les fenetres

Posté : lun. 18 janv. 2021 12:11
par YuChan
Bonjour,

Pour fermer mes fenêtres je fais ça :

Code : Tout sélectionner

Case $GUI_EVENT_CLOSE, $listeChoixConfirmCANCEL, $GUIAction, $ButtonCancelCreateTrajet
ExitLoop
Le problème c'est que sa ferme tout le programme et non pas juste la fenêtre active.

Ya t'il une solution ?

Merci

Re: Fermer les fenetres

Posté : lun. 18 janv. 2021 12:42
par mikell
Si la fenêtre à fermer est une gui que tu as créée, utilise GuiDelete() à la place de ExitLoop

Re: Fermer les fenetres

Posté : mar. 19 janv. 2021 04:11
par YuChan
Merci en effet c'est mieux.

Par contre du coup pour la fenêtre principal elle ce ferme mais pas le processus.

Comment faire du coup ?

Merci

Re: Fermer les fenetres

Posté : mar. 19 janv. 2021 09:10
par mikell
Réponse dans le wiki

Re: Fermer les fenetres

Posté : mar. 19 janv. 2021 10:59
par YuChan
Oui merci c'est la bonne réponse.

Mais j'ai beaucoup de ligne de code et c'est pas évident au départ.

Pourriez vous expliquer en 2 mots ce qu'il faut faire ?

Re: Fermer les fenetres

Posté : mar. 19 janv. 2021 11:24
par Tlem
Re bonjour.

Il y a un problème de contradiction dans vos questions/réponses.

Vous demandez comment on peux fermer une fenêtre sans fermer le programme.
Le problème c'est que sa ferme tout le programme et non pas juste la fenêtre active.
Michel vous a répondu "en utilisant "GuiDelete".

puis dans votre deuxième message, vous dites :
Par contre du coup pour la fenêtre principal elle ce ferme mais pas le processus.

Donc on fait quoi là ????
Il faudrait être clair dans vos demandes. :evil:

Re: Fermer les fenetres

Posté : mar. 19 janv. 2021 13:54
par mikell
YuChan a écrit : mar. 19 janv. 2021 10:59Mais j'ai beaucoup de ligne de code et c'est pas évident au départ.
Pourriez vous expliquer en 2 mots ce qu'il faut faire ?
La réponse est évidente :
Comme toujours pour arriver à quelque chose il faut se sortir les doigts du c... et se mettre au boulot

Re: Fermer les fenetres

Posté : mar. 19 janv. 2021 14:43
par jchd
Bien sûr : c... = canal auditif

Re: Fermer les fenetres

Posté : mar. 19 janv. 2021 19:27
par Boulanza
Bonjour,
Testez ce code:
Cordialement
Func FermerFenetre()
;$hGUI = GUICreate("Fenetre", 540, 480, -1, -1)
$FrWinSetState = WinSetState("Fenetre", "", @SW_HIDE)
EndFunc   ;==>CloseFinProtect2

Re: Fermer les fenetres

Posté : mer. 20 janv. 2021 01:25
par Tlem
@Boulanza
Pour faire suite à mon message dans l'autre sujet :
Le nom de la fonction est trompeur car on ne ferme pas, on masque/cache la fenêtre.
Vous créez une fonction avec une seule ligne de code statique => Autant écrire directement la ligne dans le code
Vous déclarez une variable ($FrWinSetState) qui ne sert à rien.
Sans compter ce bout de commentaire qui vient d'ailleurs et qui ne sert à rien ;==>CloseFinProtect2

Je n'aurait rien dit si vous aviez été jusqu'à faire quelque chose comme ceci :

Code : Tout sélectionner

Func CacheLaFenetre($sTitle)
  Return WinSetState($sTitle, "", @SW_HIDE)
EndFunc
Bien que ce code soit absolument inutile.

Re: Fermer les fenetres

Posté : mer. 20 janv. 2021 05:54
par YuChan
Merci pour vos réponses.

Alors j'ai fait comme ça :

Code : Tout sélectionner

While 1												
							
GUIDelete($GUIListeConfigs)
Switch GUIGetMsg()
	Case $listeChoixConfirmCANCEL, $GUIAction, $GUIlisteConfirmChoix, $GUIListeConfigs
		GuiDelete()

	Case $GUI_EVENT_CLOSE
		Exit
Mais la encore ça me ferme tout le programme.
La seul chose qui marche c'est le bouton Cancel

Je pose une question surement débile mais je ne trouve pas d'autre solution.

Pour WinSetState sa cache seulement la fenêtre comme pour GuiDelete() et le processus tourne en arrière plan du coup impossible de fermer aussi les fenêtre parent.

Merci si possible de continuer de m'aider.

Re: Fermer les fenetres

Posté : mer. 20 janv. 2021 09:01
par YuChan
Désolé j'avais pas vue ton message Tlem.

En effet je veux fermer les GUI que j'ai creée sa c'est facile faut utiliser GUIDelete() par contre la GUI principal avec GUIDelete() reste en arriére plan ce qui va pas, donc dans le code comment fermer la fenêtre principale avec exit du processus et fermer les GUI perso avec GUIDelete().

Vous semblez dire que c'est la base mais je vois aucun wiki avec mon problème

Cdt

Re: Fermer les fenetres

Posté : mer. 20 janv. 2021 10:27
par Tlem
Ben oui, forcément, si vous fermez toutes les fenêtres (GUI) mais que vous ne quittez pas le code, celui-ci continue de tourner en boucle et comme il n'y a plus d'interface graphique (GUI) pour dire que vous voulez le fermer, ben il restera en fonctionnement jusqu'à l’arrêt du PC !

Donc au lieu de faire un GUIDelete sur votre interface principale, faites simplement un Exit. :roll:

Re: Fermer les fenetres

Posté : mer. 20 janv. 2021 10:58
par YuChan
Oui merci j'avais constaté ceci.

Cela dit, je suis toujours bloqué.
Comment connaitre l’interface principal ?

Je signal par ailleurs que j'ai déjà 2300 ligne de code, ce qui va pas m'aider beaucoup, le problème des fenêtres arrive maintenant.
Sa aurait été plus simple de faire ça dès le début.

Re: Fermer les fenetres

Posté : mer. 20 janv. 2021 13:26
par Tlem
Comment connaitre l’interface principal ?
Heuuu, c'est un blague ?

Re: Fermer les fenetres

Posté : mer. 20 janv. 2021 14:09
par mikell
YuChan a écrit : mer. 20 janv. 2021 10:58 Cela dit, je suis toujours bloqué.
OK...

Sur le fond : pour la technique, j'ai donné un lien dans le message n°4 de ce sujet mais manifestement tu ne l'as pas regardé
Sur la forme : pour la méthode, voir le message n°7 de ce sujet

Si tu continues à poser des questions idiotes alors que tu ne fais aucun effort et que les réponses sont évidentes et toutes présentes dans le fichier d'aide, je fermerai tes sujets pour cause de pollution de forum.
Mets-toi dans la tête une bonne fois pour toutes que nous ne ferons PAS ton code à ta place

Re: Fermer les fenetres

Posté : mer. 20 janv. 2021 15:18
par TommyDDR
Vous avez codé 2300 lignes dans un seul programme et vous vous posez encore ce genre de question ?
C'est étrange ^^

Re: Fermer les fenetres

Posté : jeu. 21 janv. 2021 04:50
par YuChan
mikell si j'ais vue votre script mais avec le code actuel je dois dire que je dois retaper tout le code des while ce qui va etre très long.

Donc une solurtion SVP, ou bien je clos le sujet car yen a pas ?

Merci

Re: Fermer les fenetres

Posté : jeu. 21 janv. 2021 09:01
par mikell
YuChan a écrit : jeu. 21 janv. 2021 04:50avec le code actuel je dois dire que je dois retaper tout le code des while
Il n'y a pas de solution magique. Si pour arriver au résultat souhaité tu dois réécrire tes boucles, tu n'as pas le choix... c'est ça ou tu abandonnes
De toute façon c'est comme ça qu'on apprend. Dis-toi que tu sortiras de l'épreuve plus savant :mrgreen:

Re: Fermer les fenetres

Posté : jeu. 21 janv. 2021 09:15
par YuChan
Faut dire que je comprends rien niveau Fenetre.
Je sais pas dans quels while mettre les fermeture ou juste cacher.

Bref je recommence mes while.

merci