Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: pedraosone en 16 Marzo 2008, 14:12 pm



Título: Guardar al cerrrar el form
Publicado por: pedraosone en 16 Marzo 2008, 14:12 pm
hola de nuevo amigos
ya se como guardar el contenido de un texbox en un archivo txt, mi duda surge ahora
al pulsar el boton de cerrar el formulario ese que esta en la parte alta junto al de minimizar y maximizar, quiero que me haga la misma accion pero  no se como hacerlo

otra duda que tengo es que he visto algunos programas que tienen un boton extra junto a los tres de siempre( minimizar, maximizar y cerrar) el cual cuando se pulsa recoge el formulario sobre si mismo y me gustaria saber si eso es posible sin usar controles ocx ni dll ya que me gustaria distribuir mi programa solo como ejecutable.

desde ya muchas gracias


Título: Re: Guardar al cerrrar el form
Publicado por: ~~ en 16 Marzo 2008, 14:33 pm
Para guardar antes de cerrar usa el evento form unload, para lo del tercer boton buscate por google algun api, q ahora mismo no caigo en ninguna con la q lo puedas hacer


Título: Re: Guardar al cerrrar el form
Publicado por: cassiani en 16 Marzo 2008, 14:38 pm
hola de nuevo amigos
ya se como guardar el contenido de un texbox en un archivo txt, mi duda surge ahora
al pulsar el boton de cerrar el formulario ese que esta en la parte alta junto al de minimizar y maximizar, quiero que me haga la misma accion pero  no se como hacerlo

Ya lo dijo EON, para eso usas el eveto Unload del formulario, puedes agregarle un mensaje de advertencia y que se efectue determinada acción dependiendo de la respuesta, mira este ejemplo:

Código
  1. Private Sub Form_Unload(Cancel As Integer)
  2.    Cancel = (MsgBox("¿Realmente desea Salir?", vbQuestion + vbYesNo, _
  3.                   "Salir") = vbNo)
  4.    If Cancel = 0 Then
  5.        Guardar 'llamamos a la rutina encargada de guardar
  6.    End If
  7. End Sub

Incluso podrías usar una variable booleana que indique cuando se ha realizado un cambio en el textbox y de esta manera al cerrar el form solo guarde si se ha producido un cambio o si nunca se ha guardado.

¡S4lu2!


Título: Re: Guardar al cerrrar el form
Publicado por: pedraosone en 16 Marzo 2008, 19:13 pm
Incluso podrías usar una variable booleana que indique cuando se ha realizado un cambio en el textbox y de esta manera al cerrar el form solo guarde si se ha producido un cambio o si nunca se ha guardado.
¡S4lu2!
podrias ponerme un ejemplo con un txt de eso de la variable boleana que me comentas
gracias por todo


Título: Re: Guardar al cerrrar el form
Publicado por: SheKeL_C$ en 16 Marzo 2008, 21:22 pm
Código:
Dim Cambio              As Boolean
'Variable [TRUE|FALSE]


Private Sub Command1_Click()
 'Este boton representaria el 'Guardar' de los editores d texto
 Cambio = False
End Sub

Private Sub Form_Load()
 Cambio = True
End Sub

Private Sub Form_Unload(Cancel As Integer)
   
    If Cambio = False Then Exit Sub 'CERRAMOS SIN PREGUNTAR

    Cancel = (MsgBox("¿Realmente desea Salir?", vbQuestion + vbYesNo, _
                   "Salir") = vbNo)
    If Cancel = 0 Then
        Cambio = False
        'Guardar 'llamamos a la rutina encargada de guardar
    End If
End Sub

Private Sub Text1_Change()
    Cambio = True
End Sub


Una pregunta C@ssi@ani, que etiquetas pones para los colores ???


Título: Re: Guardar al cerrrar el form
Publicado por: ~~ en 17 Marzo 2008, 00:10 am
Offtopic - SheKeL_C$, vete al combo box de la derecha, en el que pone GeSHi y las eliges. Para VB son:
[ code=vb ][ /code]


Título: Re: Guardar al cerrrar el form
Publicado por: pedraosone en 18 Marzo 2008, 02:02 am
Ante todo quiero daros las gracias  por las respuestas recibidas.
ahora os paso a intentar explicar otra duda que me surge
supongamos que la rutina guardar hace lo siguiente:
Código
  1. NumFic = FreeFile
  2. Open "C:\fichero.txt" For Append As NumFic
  3. Print #NumFic, Text10.Text  'Guardamos el valor de Cadena en el fichero.
  4. Close NumFic 'Cerramos el fichero y liberamos el canal.
  5.  
si no exisitiera c:\fichero.txt el programa lo crea. 'hasta hay lo entiendo
pero supongamos que existe ya ese archivo:
como hago yo para que si existe cree uno llamado por ejemplo
fichero+ la fecha corta de hoy
os pido perdon por tantas molestias pero aprendo mas practicando vuestros ejemplos que leyendo largos manuales aunque tambien los miro a veces  ;D
desde ya muchas gracias amigos



Título: Re: Guardar al cerrrar el form
Publicado por: cassiani en 18 Marzo 2008, 05:38 am
os pido perdon por tantas molestias pero aprendo mas practicando vuestros ejemplos que leyendo largos manuales aunque tambien los miro a veces  ;D

De seguir así te mal acostumbraras, trata de leer un poco mas...

Código
  1. Option Explicit
  2.  
  3. Private Sub Guardar()
  4. Dim NumFic As Integer
  5.    NumFic = FreeFile
  6.  
  7.    If ExisteArchivo("C:\fichero.txt") = False Then
  8.        'Si el archivo no existe lo abrimos con este nombre
  9.        Open "C:\fichero.txt" For Output As NumFic
  10.    Else
  11.        'Si existe lo abrimos con el nombre anterior pero _
  12.         agregandole la fecha actual al final
  13.        Open "C:\fichero-" & Format(Now, "dd-mm-yy") & ".txt" For Output As NumFic
  14.    End If
  15.  
  16.    'Escribiendo en el fichero
  17.    Print #NumFic, Text10.Text  'Guardamos el valor de Cadena en el fichero.
  18.    Close NumFic 'Cerramos el fichero y liberamos el canal.
  19. End Sub
  20.  
  21. Public Function ExisteArchivo(Archivo As String) As Boolean
  22. On Error Resume Next
  23.    ExisteArchivo = IIf(Dir$(Archivo) = "", False, True)
  24. End Function
  25.  
  26. Private Sub CmdGuardar_Click()
  27.    Guardar 'Llamando a la rutina guardar
  28. End Sub

Aunque lo que no entiendo es para que quieres crear archivos de diferentes nombres cuando puedes seguir agregándole info al final del primero  :huh: otra cosa, si deseas seguir creando archivos con el mismo patrón y en el mismo día, faltaría agregarle la hora de creación al final del nombre del fichero para separarlos por tiempo de creación ¡idea! (pero eso no preguntes como se hace, es muy básico).



¡S4lu2!


Título: Re: Guardar al cerrrar el form
Publicado por: pedraosone en 18 Marzo 2008, 12:37 pm
muchas gracias a todos por la aportacion
Citar
Aunque lo que no entiendo es para que queres crear archivos de diferentes nombres cuando podes seguir agregándole info al final del primero 
pues muy sencillo,o al menos eso pense yo:
si ya existe un fichero con la fecha de ese dia que cierre y salga sin guardarlo  ;D

creo que con esto puedo dar el post por concluido
nuevamente gracias a todos.


Título: Re: Guardar al cerrrar el form
Publicado por: SKL (orignal) en 19 Marzo 2008, 07:56 am
aca tenes para poner un boton mas en la barra del titulo

http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/108-ocx-para-agregar-boton-en-la-barra-de-titulo.htm


sl2


Título: Re: Guardar al cerrrar el form
Publicado por: pedraosone en 23 Marzo 2008, 21:12 pm
aca tenes para poner un boton mas en la barra del titulo

http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/108-ocx-para-agregar-boton-en-la-barra-de-titulo.htm


sl2
gracias amigo lo chekare a ver si lo entiendo