• Martes 14 de Mayo de 2024, 02:31

Autor Tema:  Preguntas Sobre Declaracion  (Leído 1253 veces)

AndresMS

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Preguntas Sobre Declaracion
« en: Martes 3 de Mayo de 2005, 14:35 »
0
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

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Preguntas Sobre Declaracion
« Respuesta #1 en: Miércoles 4 de Mayo de 2005, 15:17 »
0
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
  1.  
  2. 'En tiempo de diseño, se ha añadido MiControl(0)
  3. Public Sub AddControl
  4.    .
  5.    .
  6.    .
  7.    Dim iIdx as Integer
  8.    iIdx = MiControl.UBound + 1
  9.    Load MiControl(iIdx)
  10.    MiControl(iIdx).Move Left, Top, width, height
  11.    MiControl(iIdx).Visible = True
  12.    .
  13.    .
  14.    .
  15. End Sub
  16.  
  17. Private Sub MiControl_MiEvento(Index As Integer)
  18.    .
  19.    .
  20.    .
  21.    MsgBox "MiControl índice " & Index & " produjo un evento"
  22.    .
  23.    .
  24.    .
  25. End Sub
  26.  
  27.  

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
  1.  
  2. Private withEvents MiControl As VBControlExtender
  3.  
  4. Public Sub AddControl
  5.    .
  6.    .
  7.    .
  8.    Set MiControl = Me.Controls.Add("Biblioteca.Clase", "MiControl")
  9.    MiControl.Move Left,Top,with,Height
  10.    .
  11.    .
  12.    .
  13. End Sub
  14.  
  15. Private Sub MiControl_MiEvento()
  16.    .
  17.    .
  18.    .
  19.    MsgBox "MiControl produjo un evento"
  20.    .
  21.    .
  22.    .
  23. End Sub
  24.  
  25.  

Suerte.