Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

como repetir una pantalla en visual basic

Estas en el tema de como repetir una pantalla en visual basic en el foro de Visual Basic clásico en Foros del Web. como ciclar una pantalla en visual basic quiero saber como puedo repetir un programa desde visual basic tantas veces como el usuario indique yo tengo ...
  #1 (permalink)  
Antiguo 28/01/2004, 17:43
 
Fecha de Ingreso: enero-2004
Ubicación: edo de mex
Mensajes: 10
Antigüedad: 20 años, 3 meses
Puntos: 0
Sonrisa como repetir una pantalla en visual basic

como ciclar una pantalla en visual basic

quiero saber como puedo repetir un programa desde visual basic tantas veces como el usuario indique yo tengo una pantalla donde pido un numero en donde al darle click al boton aceptar de la misma repita la pantalla cuantas veces lo indique el numero colocado

de antemano les agradezco su ayuda

espero me puedan ayudar a lograr mi proyecto de ciclar la pantalla
  #2 (permalink)  
Antiguo 28/01/2004, 20:05
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 6 meses
Puntos: 0
estefy,

Dim formulario As Form
Set formulario = New Form1 (el nombre del formulario a clonar)
formulario.Show

lo metes en un bucle y listo...

Saludos
Pablo
  #3 (permalink)  
Antiguo 11/03/2004, 16:20
 
Fecha de Ingreso: enero-2004
Ubicación: edo de mex
Mensajes: 10
Antigüedad: 20 años, 3 meses
Puntos: 0
hola
muchas gracias por u ayuda me sirvio mucho pero no he podido entender la estructura de los bucles siempre me pide un objeto podrias mandar me la estructura del mejor bucle para generar mi pantalla
  #4 (permalink)  
Antiguo 11/03/2004, 16:47
 
Fecha de Ingreso: enero-2004
Ubicación: edo de mex
Mensajes: 10
Antigüedad: 20 años, 3 meses
Puntos: 0
mi programa es el siguiente y quisiera que me ayudaras a estructurarlo bien mas que nada en cuanto a los bucles lo que se pretende es ejecutar la pantalla tantas veces anote el numero el usuario espero me puedan a yudar

aqui empieza mi programa:

Dim aceptar As Integer
Private Sub Command1_Click()

Text2.Text = UCase(Text1.Text) + (" hola como estas")
Text3 = ""
'esta es la estructura que me mandaste ahora te pido que me
'ayudes a acomodar los bucles ya que no les he podido entender
'entre comentarios he puesto a como yo le he entendido en libro
Dim formulario As Form
Set formulario = fa.frm
fa.Show

' repeat
' Form1
'until text=""

'For aceptar = 1 To Text3.Text < 99
' Print Form1
'Next

'Do
' Form1
'Loop Until Text3 < 99

' Do Until Text3.Text < 99
' aceptar = aceptar + 1
'Loop

End Sub
Private Sub Command2_Click()
mensaje = "¿Esta seguro que desea salir?"
If MsgBox(mensaje, vbYesNo + vbQuestion, "Atención") = vbNo Then
Text1.Text = " "
Text2.Text = " "
Else
End
End If
End Sub

de antemano les agradezco cualquier ayuda que me puedan ofrecer

gracias
  #5 (permalink)  
Antiguo 15/03/2004, 15:34
Avatar de pabli  
Fecha de Ingreso: octubre-2003
Mensajes: 381
Antigüedad: 20 años, 6 meses
Puntos: 0
estefy, perdona el retraso:

Código:
Private Sub Command1_Click()

    Dim num As Integer
    Dim formulario() As Form
    ReDim formulario(Text1.Text - 1)

    For num = 0 To Val(Text1.Text - 1)
        Set formulario(num) = New form_a_copiar
        formulario(num).Show
    Next
End Sub
Adáptalo a tu código. Si no entiendes algo me escribes...

Saludos
Pablo
  #6 (permalink)  
Antiguo 29/03/2004, 16:07
 
Fecha de Ingreso: enero-2004
Ubicación: edo de mex
Mensajes: 10
Antigüedad: 20 años, 3 meses
Puntos: 0
Sonrisa aun no me queda

gracias por la respuesta querido amigo, pero aun sigo sin entender muy bien.

te platicare que en la universidad me dejaron crear un programa que genere tantas pantallas como el usuarios quiera, de cierta forma, nos mostro un archivo que es una broma la cual me imagino ya conoces, se trata de un archivo ejecutable hecho en visual , el cual nos pregunta que edad tenemos; al colocar el numero y presionar el boton aceptar. aparece tantas pantallas como el numero que se halla colocado. y por lo cual tenemos que cerrar cada una de ellas. el archivo que te menciono lo queria poner a tu disposicion para que veas mas o menos lo que quiero que haga pero no me permite subirlo desde aqui.

por eso es que me interesa saber como realizar esa funcion ya que es para una calificacion final. por tal motivo quiero agradecerte la atencion que prestes a este problema.

gracias pabli. y estoy de acuerdo , ABAJO EL TERRORISMO.


gracias de todos modos. bye.
  #7 (permalink)  
Antiguo 04/04/2004, 15:03
 
Fecha de Ingreso: abril-2004
Mensajes: 16
Antigüedad: 20 años, 1 mes
Puntos: 0
Por lo que entiendo, apenas estas haciendo tus primeros pininos en programación, o almenos en Visual Basic, ya que alparecer no tienes bien claros algunos conceptos, y las respuestas que te han enviado presuponen que ya tienes un cierto conocimiento de esos conceptos. Así que tratare de explicarte lo que ya antes te habian sujerido, pero de manera que puedas entenderlo facilmente.

Primero, debes tener en tu proyecto dos formularios, el principal, que sera el que se mostrara al ejecutar el programa, y otro que sera el que se mostrara las n veces. En el primero, que llamaremos frmMain (Para esro tendras que modificar la promiedad Name del objeto form, que por defecto tiene Form1, Form2, etc), tendremos los siguientes objetos, con sus respectivas propiedades:


Objeto +++++++++ Name +++++++++ Caption
--------------------------------------------------
Label ++++++++++ Label1 +++++++ Cual es tu edad?
TextBox ++++++++ txtEdad
CommandButton ++ cmdAceptar +++ Aceptar
CommandButton ++ cmdSalir +++++ Salir


Ahora en el evento Click del CommandButton cmdAceptar tendremos el siguiente código el cual he comentado para que lo entiendas fácilmente:

Código:
Private Sub cmdAceptar_Click()
    ' Esta variable la utilizaremos como contador
    Dim num As Integer
    ' Declaramos un arreglo de objetos Form, que almacenara
    ' cada una de las ventanas (formularios) que vamos a mostrar
    ' Los parentesis le indican a VB que estamos declarando un arreglo
    ' El objeto Form esta definido por VB
    Dim formulario() As Form
    ' Mediante ReDim Establecemos la dimensión del Arreglo de Formularios,
    ' al número que se haya ingresado en el TextBox txtEdad
    ' Usamos la función Val para convertir el valor devuelto por la propiedad
    ' Text del TextBox, el cual es de tipo String, y lo que nesecitamos es
    ' un valor Numérico, normalente no hay ningun problema si no usamos la
    ' función val, pero es mejor siempre convertir los valores al tipo de
    ' dato que vamos a manipular, ya que esto nos evitara  algunos problemas
    ' Ahora como los arreglos empiezan a Indexarse desde 0, y lo que le indicamos
    ' a VB en la sentencia ReDim, es el maximo indice que tendra nuestro arreglo
    ' debemos decrementar en uno la cantidad ingresada en el TextBox por lo siguiente:
    ' Si ingresamos 3 en el textBox y no decrementamos este valor, tendremos
    ' un arreglo con indices desde 0 a 3, es decir: 0, 1, 2, 3, tendremos pues 4
    ' elementos en el arreglo en vez de 3
    ' Otra forma de manejar esto es indicarle a VB que comience a indexar desde 1 en
    ' lugar de 0 mediante la sentencia: Option Base 1, la cual deberas ingresar
    ' en la sección "General" del codigo
    ReDim formulario(Val(txtEdad.Text) - 1)
    
    ' Un cilco For tiene la siguiente sintaxis:
    ' For VariableDeControl = ValorInicial To ValorFinal
    '     (Sentencias)
    ' Next
    '
    ' Este ciclo lo que hace es ir asignando valores a VariableDeControl
    ' desde ValorInicial hasta ValorFinal, incrementando en cada paso
    ' una unidad la variable de control y ejecutando todo el código
    ' que exista entre la instrucción For y la instrucción Next
    '
    ' Aqui lo que le indicamos a VB es que aremos un ciclo, el cual ira
    ' asignando valores a la variable num (nuestra variable de control)
    ' desde 0 hasta el valor que tengamos en el textBox menos uno (por lo
    ' explicado anteriormente)
    For num = 0 To Val(txtEdad.Text) - 1
        ' Este código se ejecutara cada vez que VB asigne un valor
        ' a la variable num
        
        ' Aqui lo que hacemos es crearuna nueva instancia del objeto
        ' frmVentana que es el nombre que tiene el form que queremos
        ' mostra n veces
        ' New crea la instancia del objeto y Set asigna ese objeto
        ' a una variable, la cual debera estar declarada del tipo
        ' de objeto que estemos creando, en este caso sera cada uno de
        ' los elementos del arreglo formulario, a los cuales accederemos
        ' mediante su indice, en este caso utilizamos la variable num
        ' que ira tomando los valores 0, 1, 2, .... en cada iteración
        ' del ciclo, es decir en la primera iteración la sentencia se
        ' transformara a Set formulario(0) = New frmVentana, en la
        ' segunda a Set formulario(1) = New frmVentana y así sucesivamente
        Set formulario(num) = New frmVentana
        ' Ahora simplemente mostramos el formulario mediante el método
        ' show del objeto
        formulario(num).Show
    Next
End Sub
Este seria el codigo del CommandButton cmdSalir:

Código:
Private Sub cmdSalir_Click()
    If MsgBox("¿Esta seguro que desea salir?", vbYesNo + vbQuestion, "Atención") = vbYes Then
        Unload Me
    End If
End Sub
Bueno espero haber sido lo suficientemente claro, alomejor por ahi hay algunas cosa que no entiendas, te sujeriria que leyeras algo sobre estructuras de control, arreglos y un poco sobre Porgramación Orientada a Objetos, esto para entender los conceptos de objeto, instancia, propiedades, métodos, etc.

Última edición por Nightmare; 13/09/2008 a las 14:40
  #8 (permalink)  
Antiguo 30/04/2004, 17:05
 
Fecha de Ingreso: enero-2004
Ubicación: edo de mex
Mensajes: 10
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta texto en pantalla

hola espero que estes bien y de antemano te agradezco la ayuda que me has proporcionado para mi proyecto

ya me quedo el que me genere las pantallas que deseo ahora quisiera que en esas misma me aparezca un texto predeterminado el cual no se pueda modifecar

el texto ya lo tengo y de igual menera que no se modifique pero al momento de generarar las pantallas no lo respeta

o en que parte del codigo tengo que introducir esa instruccion

de antemano les agradezco la ayuda que me puedan proporcionar ya que estoy segura que me servira

gracias saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 20:26.