Programación General > Visual Basic 6.0 e inferiores

 Preguntas Sobre Declaracion

(1/1)

AndresMS:
hola... que tal?
es posible asignar eventos de ésta forma ?

osea usando los nombres de los objetos con variables...

Public i As Long
For i = 0 To 10
   Dim WithEvents "is" & CStr(i) & "_m3" As Image
   is1_m3.Picture = LoadPicture(EXEPAth + "fotos\300\301 Alisol endostásgnico úmbrico.gif")
   is1_m3
   is2_m3
Next



is1_m3.Picture = LoadPicture(los datos salen de una matriz)


For i = 0 To 10
    Set is1_m3 = Controls.Add("vb.image", "is1_m3", fondo3)
        is1_m3.Visible = True
        is1_m3.Height = 987
        is1_m3.Left = 720
        is1_m3.Width = 975
        is1_m3.Appearance = 0
        is1_m3.BorderStyle = 1
        is1_m3.Stretch = True
        is1_m3.MouseIcon = LoadPicture(EXEPAth + "Iconos\select.cur")
        is1_m3.MousePointer = 99


    Set lblDinamic = Controls.Add("VB.Label", "lblDinamic" & CStr(i))
    With lblDinamic
        .Visible = True
        .Top = nlblDinamic * 390 + Label1.Top
        .Left = Label1.Left
        .Caption = .Name
        .Height = 255
    End With

next


Gracias...

Brroz:
Hola AndresMS.

Esa declaración no funcionaría...

Sin examinar en detalle el código, veo que intentas añadir en tiempo de ejecución controles de los que quieres controlar sus eventos...

Puedes seguir dos caminos:

1- Añade en tiempo de ejecución un control del tipo que desees y da valor a su propiedad 'Index' con el fin de crear una matriz de controles. Para añadir nuevos controles a la matriz, utiliza el método Load.

--- Código: Text --- 'En tiempo de diseño, se ha añadido MiControl(0)Public Sub AddControl   .   .   .   Dim iIdx as Integer   iIdx = MiControl.UBound + 1   Load MiControl(iIdx)   MiControl(iIdx).Move Left, Top, width, height   MiControl(iIdx).Visible = True   .   .   .End Sub Private Sub MiControl_MiEvento(Index As Integer)   .   .   .   MsgBox "MiControl índice " & Index & " produjo un evento"   .   .   .End Sub  
2- Declara 'withevents' una variable de tipo VbControlExtender. Luego añade los controles mediante el método Add de la colección Controls asígnando a cada una de las variables 'control extender' que declaraste.

--- Código: Text --- Private withEvents MiControl As VBControlExtender Public Sub AddControl   .   .   .   Set MiControl = Me.Controls.Add("Biblioteca.Clase", "MiControl")   MiControl.Move Left,Top,with,Height   .   .   .End Sub Private Sub MiControl_MiEvento()   .   .   .   MsgBox "MiControl produjo un evento"   .   .   .End Sub  
Suerte.

Navegación

[0] Índice de Mensajes

Ir a la versión completa