• Domingo 22 de Diciembre de 2024, 18:25

Autor Tema:  Abrir formulario  (Leído 1356 veces)

valenciaruben

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Abrir formulario
« en: Jueves 18 de Septiembre de 2008, 21:05 »
0
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

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Abrir formulario
« Respuesta #1 en: Viernes 19 de Septiembre de 2008, 02:02 »
0
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.
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
  1.  
  2. 'nota si la declaración la pones en un formulario debes declararla private, en un módulo puede perfectamente ser public.
  3. Public Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
  4.  
  5.  

Pongamos que al arrancar la aplicación tienes 3 formularios el principal y otros 2.
Código: Visual Basic
  1.  
  2.     dim elForm as long
  3.     private sub Form1_load
  4.         elform=form2.Hwnd
  5.    end sub
  6.  
  7.   private sub command1_click
  8.         call ShowWindow(elForm,vbNormal) ' et voilá allí aparecerá...
  9.   end sub
  10.  
  11.  

El 2º parámetro de la api indica como ha de aparecer, minimizado, maximizado, normal, ovulto....
«Ma non troppo»
----> ModoVacaciones = False<----

valenciaruben

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Abrir formulario
« Respuesta #2 en: Viernes 19 de Septiembre de 2008, 03:21 »
0
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

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Abrir formulario
« Respuesta #3 en: Martes 23 de Septiembre de 2008, 04:42 »
0
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.
«Ma non troppo»
----> ModoVacaciones = False<----