Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Reiniciar Formulario(Solucionado)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Reiniciar Formulario(Solucionado) 
 
Hola, necesito cerrar un formulario y volver a cargarlo. Lo estoy haciendo de la siguiente manera
PUBLIC SUB Btnnuevo_Click()
' --------------cargar form1,cuya instrucciòn es cerrarse y reabrir este formulario para reiniciarlo
  ME.Close
  Form1.Show

END
 

 Esto me obliga a crear otro formulario cuya única función es cerrarse y abrir este de vuelta.
¿Alguien conoce una manera mejor de hacerlo?
Desde ya, muchas gracias.
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
última edición por Dani26 el Jueves, 24 Junio 2010, 02:41; editado 1 vez 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Reiniciar Formulario 
 
Bueno si solo es reiniciarse mira con:


ME.Refresh

 

 




===================
The best open source software in CaosG
 
Emmet - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Reiniciar Formulario 
 
No, ya probè  y el refresh solo lo que redibuja, los valores de las variables creadas al iniciar no cambian y no limpia la matriz de controles creada en tiempo de ejecuciòn. Busquè en google y no encontrè nada, tampoco en el libro de gambas.
O sea, el mètodo que estoy usando no creo que sea engorroso ni complicado, solo que me implica crear una interfaz gràfica que solo se carga,se descarga y recarga el formulario que lo abrió.
Gracias
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Reiniciar Formulario 
 
Hola.
No entiendo muy bien tu problema. ¿Por qué dices que necesitas abrir un formulario para reiniciar otro? ¿No te vale con una función?
Saludos.
 



 
bies88 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Reiniciar Formulario 
 
Dani26, por favor presta atención al hecho de que tu problema no es saber cómo reiniciar un formulario, sino que eso es lo que estás suponiendo solucionará el verdadero problema que enfrentas. Es necesario que expliques cual es ese problema que realmente necesitas solucionar para que podamos ayudarte.

Tampoco se comprende bien a qué te refieres con limpiar la matriz de controles: ¿borrar los datos que contienen o eliminar los controles?

Si lo que quieres asignar valores específicos a ciertas variables, propiedades de controles o eliminar ciertos controles, crea una rutina (en el mismo formulario) que haga eso, y luego la llamas todas las veces que lo necesites. Por ejemplo:

PRIVATE SUB ReIniciar()
DIM obj AS Object
  FOR EACH obj IN ME.Controls
    IF obj IS TextBox THEN obj.Clear
    IF obj IS ListBox THEN obj.Delete
  NEXT
  $sVariable1 = ""
  $iVariable2 = 2005
  $bMostrar = TRUE
END
 

 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Reiniciar Formulario 
 
Amigos, humildemente, en realidad no sé  si considerarlo un problema.
 Cuando inicia el formulario se cargan un montón de variables, una de elllas aleatoria(película). A su vez esta variable crea una matriz de textbox invisibles(salvo los espacios vacìos) con unos label a modo de subrayado. Ademàs inicializa los errores posibles, un timer, pone en un textbox la cantidad de letras a acertar y limpia el textbox de las letras usadas.

Al ser tantas variables a reiniciar, textbox a limpiar, matriz a destruir, me parece que el código se volverìa engorroso.
¡ojo! Hablo desde la perspectiva de un aprendiz consciente de que es más lo que tiene para aprender, que lo poco que ya sabe. Me pareciò terriblemente simple el metodo de cerrar el formulario y volver a abrirlo y asì generar otra vez el evento open.
Quizàs un poco de còdigo lo ilustre mejor,( recorté la parte de carga del listbox para hacerlo más corto)
' gambas class file
PRIVATE matrizObjetos AS Object[]
PRIVATE inicializado AS Boolean
PRIVATE largoCadena AS Integer
PRIVATE fallos AS Integer
PRIVATE letras AS Integer


PUBLIC SUB Form_Open()
  'cargar lista
listbox1.add("submarino amarillo")
listbox1.add("Avion presidencial")
listbox1.add("Mujer bonita")
listbox1.add("Doce hombres en pugna")
  ----------cargar errores,ocultar pelìcula,inicializar timer y lanzar el sub elegir
 Textbox3.text = "6"
TextBox1.visible = FALSE
elegir
TextBox2.text = 120
PUBLIC SUB elegir()

  ' gambas class file
DIM partesCadena AS String
DIM textbox AS textbox
DIM caracter AS String
DIM x AS Integer
DIM nombrePelicula AS String
DIM pelicula AS String[]
DIM cadenaCompleta AS String
DIM label AS label
DIM lugar AS Integer

'--------------------------------elegir aleatoriamente una pelicula de la lista y copiarla en textbox1
lugar = Int(Rnd() * (ListBox1.Count))
TextBox1.text = ListBox1.List[lugar]

'------------------------------Asignar el nombre de la pelicula
nombrepelicula = TextBox1.text
' -----------------------------Pasar a minúscula
nombrepelicula = LCase(nombrePelicula)
'------------------------------- dividir caracteres
pelicula = Split(nombrePelicula)

'--------------------------------Juntar nombre pelicula
FOR EACH partesCadena IN pelicula
 cadenaCompleta = cadenaCompleta & partesCadena
NEXT
 
'------------------------------Tomar largo pelicula
largoCadena = Len((cadenaCompleta))
' -------------inicializar variable letras (cantidad a acertar)
letras = largocadena

IF NOT inicializado THEN
'-------------------------------Creacion de la matriz de texbox
    matrizObjetos = NEW Object[]
    
'-------------------------------Numero de texbox
    FOR x = 1 TO largoCadena
    
        
'--------------------------------Creacion de los textbox
        textbox = NEW TextBox(ME)
        label = NEW label(ME)
'--------------------------------------Posicionamiento de los textbox        
        textbox.X = (x * 10 + x) * 2.5 + 2
        textbox.Y = 200
        textbox.width = 20
        textbox.height = 40
        textbox.visible = TRUE
        label.x = (x * 10 + x) * 2.5 + 2
        label.y = 250
        label.Width = 20
        label.Height = 5
        label.Background = Color.Black
        

'-------------------------------------------Lectura de los caracteres de la cadena
                                            'y colocacion en los textbox.
        caracter = Mid(cadenaCompleta, x, 1)
        textbox.Text = caracter  
        matrizObjetos.Add(textbox, x)
'--------------------------------------------bloquearlos textbox para que el usuario no pueda
'                                              escribir en ellos
        textbox.Enabled = TRUE
'-------------------------------------------comprobar si es espacio vacìo y cambiar color de fondo
' ------------------------------------------en caso contrario hacer el textbox invisible
        IF textbox.text = " " THEN
        textbox.Background = Color.Blue
'-------------------------------------------restar espacios vacios a la variable letras        
        letras = letras - 1
        ELSE
        textBox.Visible = FALSE

END IF  
NEXT

END IF
       txtletra.SetFocus
         TextBox4.text = letras
END


Y una captura de pantalla
 juego_1277257721_369774
Gracias a todos.
Saludos
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Reiniciar Formulario 
 
Hola Dani

Veo que ya terminas tu juego. Habrá que probarlo.
En cuanto al código, lo ideal es que separaras tu interfaz gráfica, de las reglas de negocio(Subrutinas de código).
¿Cómo hacerlo?.

1) Crea un modulo llamado modAcciones
2) Dentro de este Declara todas tus variables y crea los procedimientos necesarios,ejemplo.

Public sub limpiar()
 'Aqui va el codigo que restablece todos los controles
End sub

Public sub elegir()
'Aqui va el codigo principal
End sub

3)En el evento Open del formulario, deberas llamar  al procedimiento principal.

Public sub Form_Open()

modAcciones.elegir()

End sub

4) En el boton nuevo juego, en su evento click, debes agregar el siguiente codigo.

Public sub nuevojuego_click()
 modAcciones.limpiar()
End sub

Esto es solo un bosquejo, para que tu codigo quede mejor estructurado.

Saludos
 



 
última edición por abarzuaf el Miercoles, 23 Junio 2010, 04:22; editado 1 vez 
abarzuaf - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Reiniciar Formulario(Solucionado) 
 
Estimado abarzuaf, tu consejo me dio la soluciòn a mi problema.Creé un mòdulo(Modreinicio) con el siguiente código.
public sub reiniciar()
    frmjuego.close
    frmjuego.show
end
 

 En el botón nuevo juego del frmjuego coloquè lo siguiente:

Public sub btnnuevo_click
          modreinicio.reiniciar
end
 

  Esto me permitió eliminar el "formulario auxiliar".
Tu consejo de separar código e interfaz gráfica me dio la idea.En unos días espero poder estar publicando una primera versión del juego.
Saludos y gracias a todos.
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Cambiar El TextBox De Un Formulario, Con E... CanihoJR General 14 Sabado, 17 Octobre 2009, 16:51 Ver último mensaje
david
No hay nuevos mensajes Mensajes Entre Modulo Y Formulario [Soluci... tincho General 6 Jueves, 02 Junio 2016, 10:47 Ver último mensaje
tincho
No hay nuevos mensajes Componer Un Formulario Y Sus Componentes [... gambafeliz General 4 Jueves, 19 Septiembre 2019, 16:08 Ver último mensaje
gambafeliz
No hay nuevos mensajes Formulario Transparente [Solucionado] gambafeliz General 4 Domingo, 22 Septiembre 2019, 13:36 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron