Listin Gambas2

Création d'un programme en Gambas2 : un répertoire téléphonique pas à pas

Origine : http://listingambas.blogspot.com/2011/06/modulo-archivo-salir.html

Module Fichier : Quitter

Pour quitter le programme, Nous utilisons la commande Me.Close
dans le menu / Fichier / Quitter, entrez le code suivant:
PUBLIC SUB Quitter_Click ()
ME . Close
END
Cette sortie est "brutale", ce qui signifie que si nous n'avons pas sauvé, les dernières données que nous avons entrées seront perdus ou modifiés .... Que pouvons-nous faire de plus "correct"?
Eh bien! nous créons une variable globale appelée «change».


Dans le module Var :
PUBLIC change AS string

Chaque fois que nous allons
saisir, modifier ou supprimer , la valeur de cette variable sera modifiée en change = "oui"

PUBLIC SUB ButtonAcepter_Click ()
IF  var.etat <> "Edition" THEN
'on ajoute les données de la matrice de saisie
  var.id.add ("Id" & Str$(Now))
  var.dni.add (TextBoxDNI.Text)
  var.nom.add (TextBoxnom.Text)
  var.prenoms.add (TextBoxPrenoms.Text)
  var.entreprise.add (TextBoxEntreprise.Text)
  var.poste.add (TextBoxPoste.Text)
  var.tel_entreprise.add (TextBoxTelEntreprise.Text)
  var.tel_perso.add (TextBoxTelPerso.Text)
  var.fax.add (TextBoxFax..Text)
  var.mobile_entreprise.add (TextBoxMobilEntreprise.Text)
  var.mobile_perso.add (TextBoxMobilPerso..Text)
  var.page.add (TextBoxWEB.Text)
  'dans Photo, on range le chemin vers les images
  var.photo.add (var.chemin_photo)
  var.adresse.add (TextBoxAdresse..Text)
  var.commentaires.add (TextBoxComments.Text)
  var.date_donnees.add (TextBoxDate.Text)
  var.mail.add (TextBoxmail.Text)
  var.change = "oui"
ENDIF
IF var.etat = "Edition" THEN
  var.dni [var.registreEdite ] = TextBoxDNI.Text
  var.nom [var.registreEdite ] = TextBoxnom.Text
  var.prenoms [var.registreEdite ] = TextBoxprenoms.Text
  var.entreprise [var.registreEdite ] = TextBoxEntreprise.Text
  var.poste [var.registreEdite ] = TextBoxPoste.Text
  var.tel_entreprise [var.registreEdite ] = TextBoxTelEntreprise.Text
  var.tel_perso [var.registreEdite ] = TextBoxTelPerso.Text
  var.fax [var.registreEdite ] = TextBoxFax.Text
  var.mobile_entreprise [var.registreEdite ] = TextBoxMobilEntreprise.Text
  var.mobile_perso [var.registreEdite ] = TextBoxMobilPerso.Text
  var.page [var.registreEdite ] = TextBoxWEB.Text
  'dans Photo, on range le chemin vers les images
  var.photo [var.registreEdite ] = var.chemin_photo
  var.adresse [var.registreEdite ] = TextBoxAdresse.Text
  var.commentaires [var.registreEdite ] = TextBoxComments.Text
  var.date_donnees [var.registreEdite ] = TextBoxDate.Text
  var.mail [var.registreEdite ] = TextBoxmail.Text
  var.change = "oui"
  'l'état édition est accompli
 
ENDIF

  ' ON MET TOUS LES CHAMPS A VIDE.
PictureBoxphoto.Picture = Picture["icon:/96/gambas"]
TextBoxDNI.Text = ""
TextBoxnom.Text = ""
TextBoxprenoms.Text = ""
TextBoxEntreprise.Text = ""
TextBoxPoste.Text = ""
TextBoxTelEntreprise.Text = ""
TextBoxTelPerso.Text = ""
TextBoxFax.Text = ""
TextBoxMobilEntreprise.Text = ""
TextBoxMobilPerso.Text = ""
TextBoxWEB.Text = ""
PictureBoxphoto.Picture = ""
TextBoxAdresse.Text = ""
TextBoxComments.Text = ""
TextBoxDate.Text = ""
TextBoxmail.Text = ""
'On écrit les données saisies dans la grille
titre. remplir ()
'l'état édition est accompli
var. etat ​ ​= ""
' setfocus mis en tête des données
TextBoxDNI. SetFocus
'On rend la grille à nouveau accessible
gridViewDonnees.
Enabled = TRUE

END

Et quand nous voulons supprimer :

PUBLIC SUB ButtonEffacer_Click ()
IF var. etat <> "Edition" THEN
«Si nous sommes en mode "Edition "
 PictureBoxFoto Image = Image [ "icône: / 96/gambas" ]
TextBoxDNI. texte = ""
TextBoxNom. texte = ""
TextBoxprenoms. texte = ""
TextBoxEntreprise. texte = ""
TextBoxPoste. texte = ""
TextBoxTelEntreprise. texte = ""
TextBoxTelPerso. texte = ""
TextBoxFax. texte = ""
TextBoxMobilEntreprise. texte = ""
TextBoxMobilPerso.texte = ""
TextBoxWEB. texte = ""
PictureBoxphoto. Image = ""
TextBoxAdresse. texte = ""
TextBoxComments. texte = ""
TextBoxDate. texte = ""
TextBoxmail.texte = ""
ENDIF

IF var. etat ​​= "Edition" THEN
«Si nous sommes en mode "Edition "
var. id . Remove (var. RregistreEdite )
var. dni . Remove (var. RregistreEdite )
var. nom . Remove (var. RregistreEdite )
var. prenoms . Remove (var. RregistreEdite )
var. entreprise . Remove (var. RregistreEdite )
var. poste . Remove (var. RregistreEdite )
var. tel_entreprise . Remove (var. RegistroEditado )
var. tel_perso . Remove (var. RregistreEdite )
var. Fax . Remove (var. RregistreEdite )
var. mobile_entreprise . Remove (var. RregistreEdite )
var. mobile_perso . Remove (var. RregistreEdite )
var. page . Remove (var. RregistreEdite )
var. photo . Remove (var. RregistreEdite )
var. adresse . Remove (var. RregistreEdite )
var. comments . Remove (var. RregistreEdite )
var. fdate_donnees . Remove (var. RregistreEdite )
var. mail . Remove (var. RregistreEdite )
var. change = "Oui"

  ' ON MET TOUS LES CHAMPS A VIDE.
PictureBoxphoto.Picture = Picture["icon:/96/gambas"]
TextBoxDNI.Text = ""
TextBoxnom.Text = ""
TextBoxprenoms.Text = ""
TextBoxEntreprise.Text = ""
TextBoxPoste.Text = ""
TextBoxTelEntreprise.Text = ""
TextBoxTelPerso.Text = ""
TextBoxFax.Text = ""
TextBoxMobilEntreprise.Text = ""
TextBoxMobilPerso.Text = ""
TextBoxWEB.Text = ""
PictureBoxphoto.Picture = ""
TextBoxAdresse.Text = ""
TextBoxComments.Text = ""
TextBoxDate.Text = ""
TextBoxmail.Text = ""

'On rend la grille à nouveau accessible

gridViewDonnees.
Enabled = TRUE
ENDIF

'On écrit les données saisies dans la grille

titre.remplir ()

' setfocus mis en tête des données
TextBoxDNI. SetFocus
 
'Est donnée par l'Etat Complutense édition
var.
état ​ ​= ""






Chaque fois que l'on enregistre ou que l'on ouvre un fichier,  la variable deevient  change = "non"
Dans le module Fichier / Sauve ():
 ... ...
 File. Sauve (destination, lignes)
 var. change = "Non " " toutes les informations ont été enregistrées, les changements sont terminés
 fins: 'Nous avons appuyé sur le bouton Annuler dans la boîte de dialogue Dialog.SaveFile ()
 'Fin de la sous-routine
 FIN


Dans le fichier de module / Open ()
 ... ...
NEXT
titre. remplir ()
 var. change = "Non" 'On a ouvert un fichier de données, aucun changement
 ENDIF
 finlecture:
FIN

Et  quand nous sortons, nous passons par une If ... Then et un Message.Info qui nous demande si nous voulons quitter ou non, sans enregistrer les modifications.


PUBLIC SUB Quitter_Click ()
Form_Close ()
FIN


PUBLIC SUB Form_Close ()
 DIM res AS Integer
 IF var. change = "oui" ALORS
 res = message. Question ( "Quitter sans sauvegarder?" ,"non", "oui" )
 IF Res = 2 THEN
 ME . CLOSE
ELSE
STOP EVENT   'arrêt de la gestion d'évènement et sortie du programme

ELSE
ME . CLOSE
ENDIF
' On ne quitte pas le programme
END





Ainsi, chaque fois que nous changerons ou modifierons des donnée, il nous sera  toujours demandé si nous voulons quitter sans sauvegarder.
Une touche professionnelle à notre programme!




Remarque importante:
Maintenant avec Form_Close (), lorsque vous appuyez sur le bouton «X», le programme vous demande si vous voulez quitter ou non.

Le formulaire peut avoir des bordures, c'est à vous de le fixer.
Fmain.Border = fixed