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

Crear un control de pestañas en tiempo de ejecucion

Estas en el tema de Crear un control de pestañas en tiempo de ejecucion en el foro de Visual Basic clásico en Foros del Web. Hola a todos: No se si alguien conozca una manera de crear controles sobre las pestañas de un control SSTab o algo parecido, esto en ...
  #1 (permalink)  
Antiguo 05/10/2009, 16:30
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Crear un control de pestañas en tiempo de ejecucion

Hola a todos:

No se si alguien conozca una manera de crear controles sobre las pestañas de un control SSTab o algo parecido, esto en tiempo de ejecucion. La razon es muy sencilla no puedo programarlo a nivel diseño, no tengo codigo duro, ya cree el control pero no tengo forma de especificar que controles quiero en que pestañas, ademas tambien necesito de los eventos del mismo

Saludos...
  #2 (permalink)  
Antiguo 05/10/2009, 18:35
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Crear un control de pestañas en tiempo de ejecucion

Hola, si no me equivoco se usa la propiedad .Container para decirle a cual queres agregarle controles, busca sobre eso.

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #3 (permalink)  
Antiguo 05/10/2009, 21:04
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Crear un control de pestañas en tiempo de ejecucion

No conocía (bueno, y sigo sin conocer porque no lo he mirado) esa propiedad Container.
Si conociésemos todas las facilidades que dá el VB, ¡sería tan bonito!.

En fín, yo crearía una matriz de Frame's con tantos frames como pestañas tenga tu programa, y pegaría en cada frame los controles que sean de la pestaña que tenga el mismo número de índice que el frame donde los pegas. No sé si me explico.
De ese modo, cuando cambias de pestaña solo tienes que hacer visible el frame que tenga su mismo índice y ocultar todos los demás frames. Los controles pegados dentro aparecerán y desaparecerán con los frames.

Bueno, ahora pienso que esto es en caso de no crear los controles también al vuelo.
Si lo haces al vuelo imagino que la propiedad container (y ahora imagino lo que puede hacer) te permitirá elegir que frame o inlcuso qué pestaña de las que tienes va a contener el control.

Igual hasta se ha entendido algo.

Saludos.

Última edición por pkj; 05/10/2009 a las 21:10
  #4 (permalink)  
Antiguo 06/10/2009, 11:46
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Crear un control de pestañas en tiempo de ejecucion

Hola:

Gracias por contestar a mi pregunta. Estoy de acuerdo con ello pero creo que no entendi muy bien, mira el problema es que no tengo una forma especifica de manejar los eventos sobre el control tab. O hasta ahora no se como hacerlo, pero si lo sabes o alguien mas me puede ayudar seria maravilloso. Y en efecto el control frame con su propiedad container me ayudaria mucho, de hecho ya lo he manejado de esa manera. Solo que pero como le digo que estoy dando click sobre determinada pestaña.

Saludos...
  #5 (permalink)  
Antiguo 06/10/2009, 13:10
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Crear un control de pestañas en tiempo de ejecucion

Hace años hice un programa y ahora lo he mirado para ver como hacía eso que tu dices.
Por lo que deduzco de mi código, en el evento Click del TabStrip miras el valor de TabStrip1.SelectedItem.Index que creo que es el tab que has pinchado.

Espero que te sirva.
  #6 (permalink)  
Antiguo 06/10/2009, 15:51
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Crear un control de pestañas en tiempo de ejecucion

Hola nuevamente debo decir que ya logre crear el objeto SSTAB en tiempo de ejecucion, ahora tengo algunos detalles espero poder explicarme bien:

1. El objeto que uso es un SSTAB que pertenece a la clase TabDlg. Este control en particular no tiene la propiedad SelectedItem, por lo que probe usando el control TabStrip pero al momento de agregarlo en tiempo de ejecucion me dice que requiero una licencia para poder usarlo y no se como declararlo. Cuando hice la prueba lo declare asi: Set ObjTabulador = Me.Controls.Add("MSComctlLib.TabStrip.1","ObjTabul ador", Me) el valor MSComctlLib.TabStrip.1 lo encontre en el registo de windows en la parte de ProgId. ¿Como puedo crear este objeto TabStrip?
2. Cuando ejecutos todo a nivel Script para crear los objetos quedan de alguna manera deshabilitados los eventos del control. O quiza me falta algo ¿que puedo hacer?
3. Ya he logrado manejar el control SSTAB, le agrego 2 frames y segun los eventos que pueda tener en otros controles estoy haciendo el llamado y cambio entre las pestañas, esto lo logre creando 2 botones, una especie de asistente con siguiente y anterior para ir pasando entre las mismas. Pero el problema es que cuando inicio la forma crea el Tab y sus pestañas correspondientes, en la primera me pone el primer frame, cuando paso a la siguiente pestaña oculto el primer frame y posteriormente muestro el segundo, el problema aqui es que no lo puedo mostrar la pestaña me aparece en blanco. ¿Que puedo hacer?
4. Viendo las limitaciones que puedo encontrar pense en utilizar menus dinamicos ¿como puedo manejarlos?

Saludos...
  #7 (permalink)  
Antiguo 06/10/2009, 16:43
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Crear un control de pestañas en tiempo de ejecucion

Hola nuevamente debo decir que ya logre crear el objeto SSTAB en tiempo de ejecucion, ahora tengo algunos detalles espero poder explicarme bien:

1. El objeto que uso es un SSTAB que pertenece a la clase TabDlg. Este control en particular no tiene la propiedad SelectedItem, por lo que probe usando el control TabStrip pero al momento de agregarlo en tiempo de ejecucion me dice que requiero una licencia para poder usarlo y no se como declararlo. Cuando hice la prueba lo declare asi: Set ObjTabulador = Me.Controls.Add("MSComctlLib.TabStrip.1","ObjTabul ador", Me) el valor MSComctlLib.TabStrip.1 lo encontre en el registo de windows en la parte de ProgId. ¿Como puedo crear este objeto TabStrip?
2. Cuando ejecutos todo a nivel Script para crear los objetos quedan de alguna manera deshabilitados los eventos del control. O quiza me falta algo ¿que puedo hacer?
3. Ya he logrado manejar el control SSTAB, le agrego 2 frames y segun los eventos que pueda tener en otros controles estoy haciendo el llamado y cambio entre las pestañas, esto lo logre creando 2 botones, una especie de asistente con siguiente y anterior para ir pasando entre las mismas. Pero el problema es que cuando inicio la forma crea el Tab y sus pestañas correspondientes, en la primera me pone el primer frame, cuando paso a la siguiente pestaña oculto el primer frame y posteriormente muestro el segundo, el problema aqui es que no lo puedo mostrar la pestaña me aparece en blanco. ¿Que puedo hacer?
4. Viendo las limitaciones que puedo encontrar pense en utilizar menus dinamicos ¿como puedo manejarlos?

Saludos...
  #8 (permalink)  
Antiguo 07/10/2009, 03:27
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Crear un control de pestañas en tiempo de ejecucion

No he usado ese objeto SSTAB, pero he encontrado este manual:

http://www.recursosvisualbasic.com.a...bed-dialog.htm

Por lo visto, la pestaña selecionada se obtiene o fija en la propiedad Tab.

para fijarla
SSTab1.Tab = 3
o para leerla
msgbox "Pestaña seleccionada = " & TabSSTab1.Tab

Lo de mostrar los frames no se donde tienes el problema, ya que una vez cargados, con cambiar la propiedad Visible debería ser suficiente para verlos o no. Asegurate de que están colocados en sus coordenadas, no sea que te aparezcan fuera de la zona visible del form.

Saludos
  #9 (permalink)  
Antiguo 07/10/2009, 09:31
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Crear un control de pestañas en tiempo de ejecucion

Hola PKJ:

El problema esta en que todo esto no lo estoy haciendo en codigo duro sino via Script. Y aqui pues existen algunas restricciones.

Saludos...
  #10 (permalink)  
Antiguo 07/10/2009, 18:57
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Respuesta: Crear un control de pestañas en tiempo de ejecucion

Hola nuevamente, solo escribo para comentar que encontre la solucion: es muy simple, al momento de crear la forma en el evento LOAD no debemos crear los objetos, sino en el metodo active con eso podemos crear los objetos y manipularlos de la mejor manera.

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




La zona horaria es GMT -6. Ahora son las 19:35.