Para salir del programa, utilizaremos la orden ME.Close.
En el Menus/Archivo/Salir, introducimos el siguiente código:
Esta salida, la hace “bruscamente”, osea que si no hemos salvado los ultimos datos que hemos introducido o modificados se perderan.... ¿que podemos hacer “corregirlo”?
Pues creamos una variable global llamada “cambio”.
En el módulo var:
PUBLIC cambio AS String
Cada vez que introduzcamos,editamos o borramos ,esta variable cambiara de valor a cambio=”si”,
PUBLIC SUB ButtonAceptar_Click()
IF var.estado <> "Edicion" THEN 'añadimos a la matriz los datos var.id.add("Id" & Str$(Now)) var.dni.add(TextBoxDNI.text) var.nombre.add(TextBoxNombre.Text) var.apellidos.add(TextBoxApellidos.Text) var.empresa.add(TextBoxEmpresa.Text) var.puesto.add(TextBoxPuesto.Text) var.telf_empresa.add(TextBoxTelfEmpresa.Text) var.telf_parti.add(TextBoxTelfParticular.text) var.fax.add(TextBoxFax.Text) var.movil_empresa.add(TextBoxMovilEmpresa.Text) var.movil_parti.add(TextBoxMovilParticular.Text) var.pag.add(TextBoxWEB.Text) 'en foto guardo la ruta donde esta la imagen var.foto.add(var.rutaimagen) var.direccion.add(TextBoxDireccion.Text) var.observaciones.add(TextBoxObs.Text) var.fecha_datos.add(TextBoxFecha.Text) var.correo.Add(TextBoxCorreo.Text) IF var.estado = "Edicion" THEN var.dni[var.RegistroEditado] = TextBoxDNI.text var.nombre[var.RegistroEditado] = TextBoxNombre.Text var.apellidos[var.RegistroEditado] = TextBoxApellidos.Text var.empresa[var.RegistroEditado] = TextBoxEmpresa.Text var.puesto[var.RegistroEditado] = TextBoxPuesto.Text var.telf_empresa[var.RegistroEditado] = TextBoxTelfEmpresa.Text var.telf_parti[var.RegistroEditado] = TextBoxTelfParticular.text var.fax[var.RegistroEditado] = TextBoxFax.Text var.movil_empresa[var.RegistroEditado] = TextBoxMovilEmpresa.Text var.movil_parti[var.RegistroEditado] = TextBoxMovilParticular.Text var.pag[var.RegistroEditado] = TextBoxWEB.Text 'en foto guardo la ruta donde esta la imagen var.foto[var.RegistroEditado] = var.rutaimagen var.direccion[var.RegistroEditado] = TextBoxDireccion.Text var.observaciones[var.RegistroEditado] = TextBoxObs.Text var.fecha_datos[var.RegistroEditado] = TextBoxFecha.Text var.correo[var.RegistroEditado] = TextBoxCorreo.Text 'se da por compluido el estado de edicion 'ponemos en blanco la propiedad .text de los texbox PictureBoxFoto.Picture = Picture["icon:/96/gambas"] TextBoxApellidos.text = "" TextBoxTelfEmpresa.text = "" TextBoxTelfParticular.text = "" TextBoxMovilEmpresa.text = "" TextBoxMovilParticular.text = "" PictureBoxFoto.Picture = "" TextBoxDireccion.text = "" 'escribimos en el gridviews el dato introducido 'se da por compluido el estado de edicion 'el setfocus lo ponemos justo al inicio de los datos 'hacemos de nuevo accesible el gridViewDatos gridViewDatos.
enabled = TRUEY cuando borramos:
PUBLIC SUB ButtonBorrar_Click()
IF var.
estado <>
"Edicion" THEN 'si estamos en mode "introduccion de datos" PictureBoxFoto.
Picture = Picture[
"icon:/96/gambas"]
TextBoxApellidos.
text = "" TextBoxTelfEmpresa.
text = "" TextBoxTelfParticular.
text = "" TextBoxMovilEmpresa.
text = "" TextBoxMovilParticular.
text = "" PictureBoxFoto.
Picture = "" TextBoxDireccion.
text = "" IF var.
estado = "Edicion" THEN 'si estamos en modo "edicion var.
id.
REMOVE(var.
RegistroEditado)
var.
dni.
REMOVE(var.
RegistroEditado)
var.
nombre.
REMOVE(var.
RegistroEditado)
var.apellidos.REMOVE(var.RegistroEditado)
var.empresa.REMOVE(var.RegistroEditado)
var.puesto.REMOVE(var.RegistroEditado)
var.telf_empresa.REMOVE(var.RegistroEditado)
var.telf_parti.REMOVE(var.RegistroEditado)
var.fax.REMOVE(var.RegistroEditado)
var.movil_empresa.REMOVE(var.RegistroEditado)
var.movil_parti.REMOVE(var.RegistroEditado)
var.pag.REMOVE(var.RegistroEditado)
var.foto.REMOVE(var.RegistroEditado)
var.direccion.REMOVE(var.RegistroEditado)
var.observaciones.REMOVE(var.RegistroEditado)
var.fecha_datos.REMOVE(var.RegistroEditado)
var.correo.REMOVE(var.RegistroEditado)
var.cambio = "si"
' Y PONEMOS TODOS LOS CAMPOS EN BLANCO
PictureBoxFoto.Picture = Picture["icon:/96/gambas"]
TextBoxDNI.text = ""
TextBoxNombre.text = ""
TextBoxApellidos.text = ""
TextBoxEmpresa.text = ""
TextBoxPuesto.text = ""
TextBoxTelfEmpresa.text = ""
TextBoxTelfParticular.text = ""
TextBoxFax.text = ""
TextBoxMovilEmpresa.text = ""
TextBoxMovilParticular.text = ""
TextBoxWEB.text = ""
PictureBoxFoto.Picture = ""
TextBoxDireccion.text = ""
TextBoxObs.text = ""
TextBoxFecha.text = ""
TextBoxCorreo.text = ""
'hacemos de nuevo accesible el gridViewDatos
gridViewDatos.enabled = TRUE
ENDIF
'escribimos en el gridviews el dato introducido
titulo.rellena()
'el setfocus lo ponemos justo al inicio de los datos
TextBoxDNI.SetFocus
'se da por compluido el estado de edicion
var.estado = ""
END
Cada vez que se guarde o abra un archivo esta variable valdra cambio=”no”
En el módulo Archivar / salva():
File.
Save(destino, lineas)
var.cambio=”no” ' se ha grabado toda la informacion, ha dejado de haber cambios fins:
' hemos pulsado el boton de cancelar en el cuadro de dialogo Dialog.SaveFile() En el módulo Archivar / abrir()
NEXT
titulo.rellena()
var.cambio=”no” ' se ha abrierto un archivo de datos, no hay cambios END
y cuando salgamos, mediante un If...Then y un Message.Info, se nos preguntara si deseamos salir o no, sin guardar cambios.
Form_close()
PUBLIC SUB Form_Close()
IF var.
cambio = "si" THEN res
= Message.Question(
"¿Desea salir sin salvar?",
"si",
"no")
STOP EVENT 'paramos este evento y no salgo del programa 'no salgo del programa
End
De esta manera conseguirmos que cada vez que se modifique o altere los datos siempre nos pregunte si queremos salir sin guardar los datos. ¡¡¡ Un toque profesional a nuestro programa !!!! |
Nota Importante:
Ahora con Form_Close() , cuando pulsamos el boton “X” el programa te pregunta si quieres salir o no. El formulario puede tener borde, lo suyo es que sea fijo. Fmain.Border=fixed
|
No hay comentarios:
Publicar un comentario