• Domingo 22 de Diciembre de 2024, 13:08

Autor Tema:  Panel control  (Leído 2140 veces)

g_ollivander

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Panel control
« en: Martes 18 de Mayo de 2010, 19:10 »
0
:alien:

Hola a todos soy nueva en este foro, mi pregunta es si es posible poner Panel como control en VB6 asi como se hace en VB.NET, por lo que lei el control PANEL lo trae desde versiones anteriores.

si es asi de que manera puedo agregarlo a mi toolbox

Gracias
 B)

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Panel control
« Respuesta #1 en: Jueves 20 de Mayo de 2010, 02:24 »
0
..y se puede saber para qué quieres un control 'panel' de vb 2005... en vb6 ?
«Ma non troppo»
----> ModoVacaciones = False<----

g_ollivander

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Panel control
« Respuesta #2 en: Lunes 24 de Mayo de 2010, 21:32 »
0
hola, gracias por responder.

Lo quiero para poder cargar controles de otra ventana sin necesidad de llamar a la ventana, de manera que los controles se puedan cargar en una forma (main) sin necesidad de que en la forma main los incluya todos y tener qe darle la propiedad de visible=false dependiendo la necesidad de cada uno.

o no se si se pueda utilizar algun otro control como el picture box que pueda hacer los mismo..

Cualqier dato te lo agradecia :huh:

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Panel control
« Respuesta #3 en: Martes 25 de Mayo de 2010, 04:43 »
0
Tienes 2 opciones.

A)))) Puedes crear un 'wrapper' del panel de vb 2005 y entonces podrás usarlo en vb6. Los controles de vb.net no son válidos para vb6 directamente. Crear un wrapper es crear un control en vb.net donde todas sus propiedades y métodos(o solo aquellas que nos interesen) son parcheadas llamándolas internamente.
Esto es, tu pones un control panel sobre el control que vas a crear y le das un nombre, pongamos panel1, entonces tu empiezas a exponer sus propiedades, hay 3 casos para el parcheo
1) la propiedad se aplica a tu control y al control incrustado dentro (el panel). Por ejemplo cuando expongas la propiedad 'Width' tu haces dentro panel1.width =ancho, control.width=ancho ... ancho es el valor recibido y control es el nombre que le des al control que estás creando, panel1, es el panel que tienes colocado sobre el control.
2) La propiedad sólo debe aplicarse al control, por ejemplo Top, con propiedades así simplemente tienes que hacer control.top=top pero no panel1.top=top porque entonces se desplazaría dentro de tu control ... top y left para panel1 serán siempre 0.
3) La propiedad sólo debe aplicarse al control  a parchear no al control en si, por ejemplo la propiedad backcolor, puesto que tu control tiene dentro un control panel de vb.net que rellena por completo el control, no tiene sentido hacer control.Backcolor = 255, basta con hacer panel1.Backcolor = 255

Con las funciones pasa del mismo modo...

B))) O bien puedes usar la api setparent para cambiar a un control de contenedor ( y olvidarte del panel). Si el contenedor esta en la misma ventana, basta con utilizar la propiedad container...

Esto último, desde luego es bastante más sencillo y rápido que crear un wrapper (los contenedores tienen más trabajo que controles que no son contenedores), tú decides.
«Ma non troppo»
----> ModoVacaciones = False<----