Page 1 sur 1

[R] Sortie du programme suite à _SQLite_Startup()

Posté : ven. 16 mai 2025 09:08
par gumaher
Bonjour,
Mon petit programme est destiné à lire une base de données SQLite. Pour en sortir, un item de mon menu envoie vers la fonction suivante :

Code : Tout sélectionner

Func _Quitter()
	_SQLite_Close(-1)
	_SQLite_Shutdown()
	GUIDelete($hGUI)
	Exit
EndFunc
Que se passe-t-il si l'utilisateur quitte le programme par un clic sur la petite croix de sortie affichée en haut à droite de la fenêtre, plutôt que par mon menu ? Met-elle fin au _SQLite_Startup() de début de programme ?

L'argument (si c'est un argument ?) - 1 renvoie à quoi ?

Je vous remercie de vos précisions.

Re: [] Sortie du programme suite à _SQLite_Startup()

Posté : ven. 16 mai 2025 11:23
par TommyDDR
Par défaut, il ne se passe rien.
Si vous avez Opt("GUIOnEventMode", 1)

Alors il vous suffira d'ajouter cette ligne
GUISetOnEvent($GUI_EVENT_CLOSE, _Quitter)

$GUI_EVENT_CLOSE signifie "Quand j'appuie sur la croix rouge, ou que je fais alt + F4, ou clic droit sur ma fenêtre dans la barre des tâches / fermer la fenêtre / etc etc"

Sinon, vous avez surement une boucle de ce style dans laquelle il faudra ajouter :
While 1
   $idMsg = GUIGetMsg()
   Select
      Case $idMsg = $GUI_EVENT_CLOSE
         _Quitter()
   EndSelect
WEnd

Re: [] Sortie du programme suite à _SQLite_Startup()

Posté : ven. 16 mai 2025 17:29
par gumaher
Je vous remercie pour ces explications.
J'ai corrigé ainsi :

Code : Tout sélectionner

Global $idMsg = GUIGetMsg()
    While $idMsg <> $GUI_EVENT_CLOSE
        	Switch $idMsg
       	 		Case $GUI_EVENT_CLOSE
           			_Quitter()
Merci encore.

Re: [] Sortie du programme suite à _SQLite_Startup()

Posté : ven. 16 mai 2025 18:17
par gumaher
Ah non, la sortie ne se fait pas par la fonction _Quitter() en cliquant sur la croix. J'ai ajouté un MsgBox dans la fonction, et elle ne s'affiche pas lorsque je clique sur la croix. Voici ma fonction :

Func _Quitter()
MsgBox(0,"","Sortie réussie !")
_SQLite_Close(-1)
_SQLite_Shutdown()
GUIDelete($hGUI)
Exit
EndFunc

Re: [] Sortie du programme suite à _SQLite_Startup()

Posté : ven. 16 mai 2025 19:23
par walkson
Bonjour,

Code : Tout sélectionner

    While 1
		$idMsg = GUIGetMsg()
        	Switch $idMsg
       	 		Case $GUI_EVENT_CLOSE
           			_Quitter()
			EndSwitch
	WEnd
	
$idMsg = GUIGetMsg() doit être dans la boucle

Re: [R] Sortie du programme suite à _SQLite_Startup()

Posté : ven. 16 mai 2025 20:27
par gumaher
C'est parfait. Tout fonctionne très bien.
Grand merci à tous deux.