Programación General > Visual Basic 6.0 e inferiores

 Abrir formulario

(1/1)

valenciaruben:
Cordial Saludo.
Tengo el nombre de un formalario almaacenado en un string. cómo hago para abrir el formulario.

variableString.show 'esto no funciona.

Nebire:

--- Cita de: "valenciaruben" ---Cordial Saludo.
Tengo el nombre de un formalario almaacenado en un string. cómo hago para abrir el formulario.

variableString.show 'esto no funciona.
--- Fin de la cita ---
Unas variable tiene un valor, su contenido es una cadena, lo que se pasa a show es el handle del formulario, hay algún modo pero creo que te complicas en exceso. en vez de guardar el 'string', el nombre es una propiedad con la que sólo se puede trabajar si está cargado en memoria,  deberías guardar el 'Hwnd' para ello luego usas la API:

--- Código: Visual Basic --- 'nota si la declaración la pones en un formulario debes declararla private, en un módulo puede perfectamente ser public.Public Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long  
Pongamos que al arrancar la aplicación tienes 3 formularios el principal y otros 2.

--- Código: Visual Basic ---     dim elForm as long    private sub Form1_load        elform=form2.Hwnd   end sub   private sub command1_click        call ShowWindow(elForm,vbNormal) ' et voilá allí aparecerá...  end sub  
El 2º parámetro de la api indica como ha de aparecer, minimizado, maximizado, normal, ovulto....

valenciaruben:
Gracias por tu ayuda.
Lo que pasa es que tengo un FileListBox con la propiedad Pattern: *.frm y quiero que al seleccionar un formulario del FileListBox este sea mostrado.

Nebire:
Mira, no sea ceporro. Si vas a una ciudad que no conoces y preguntas por 'Javier Basic' nadie lo conoce... pero si es probable que cualquiera conozca la dirección de Javier Basic, por tanto no des el nombre que nadie conoce, pregunta por la dirección.... Conocen ustedes la 'Avenida algoritmo' ?.. luego ya desde allí buscarás la calle , el edificio, el piso y llamarás a la puerta de Javier Basic.

Lo que quiero decir es que tu puedes tener en un listado lo que te dé la gana, por que es lo que de cara al usuario resulta reconocible, cómodo o agradable, pero por detrás tendrás que corresponder lo que tienes en la interfaz con lo que realmente debe llamarse. El nombre del formulario es como el nombre de alguien, el handle del formulario es el controlador del formulario, el identificador, su documentación, es como el mapa de la ciudad donde puedes buscar la dirección de Javier Basic, y más cosas.

Además el formulario debe estar en la aplicación aunque no esté  visible, ni activo ni cargado en memoria, de otra forma lo único que podrás hacer es abrirlo como un archivo de texto. Si Javier Basic no vive en la ciudad ninguna dirección tiene sentido, dicho de otro modo no existe un controlador para la ventana que no ha sido creada. Tampoco puedes hacer una referencia.

No es que no sea posible, es que no está documentado por Microsoft, ya que eso pertenece al propio entorno de compilación, se me ocurre una manera, pero sería muy trabajoso y no merece la pena.

Navegación

[0] Índice de Mensajes

Ir a la versión completa