Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: E N T E R en Julio 28, 2011, 03:49:59 pm

Título: Crear y ordenar en tiempo de ejecucion
Publicado por: E N T E R en Julio 28, 2011, 03:49:59 pm
Hola amigos del foro. Estoy preparando un formulario con un control Picture que quiero crear y ordenar según le indique la columna y la cantidad que tiene que crear.

(http://enterpy.net/avatares/INDEX.png)
Título: Re:Crear y ordenar en tiempo de ejecucion
Publicado por: pedroesca en Julio 28, 2011, 04:11:38 pm
y en que se te podría ser útil estimado???
Título: Re:Crear y ordenar en tiempo de ejecucion
Publicado por: E N T E R en Julio 28, 2011, 04:43:33 pm
y en que se te podría ser útil estimado???

Quiero cargar dentro de cada picture creado una imagen.
Título: Re:Crear y ordenar en tiempo de ejecucion
Publicado por: pedroesca en Julio 28, 2011, 04:46:35 pm
Perfecto! vamos de lo "general a lo particular". En primer lugar, desde donde piensas cargar esas  imágenes?? desde archivos de imágenes comunes alojados en alguna carpeta del disco??? o desde una base de Datos????
Título: Re:Crear y ordenar en tiempo de ejecucion
Publicado por: E N T E R en Julio 28, 2011, 04:55:37 pm
Desde una carpeta mi amigo, con la funciona LoadPicture
Título: Re:Crear y ordenar en tiempo de ejecucion
Publicado por: E N T E R en Julio 28, 2011, 05:44:38 pm
Encontre este que sirve para crear las columnas. en este codigo me agrega 5 picture ahora como ago para que se baje hacia abajo con la misma posiciones.

Private Sub Form_Load()
   
    For i = 1 To 4
   
        Load Picture1(Picture1.Count)
        a = Picture1.Count - 1
        Picture1(a).Visible = True
        Picture1(a).Height = Picture1(a - 1).Height
        Picture1(a).Width = Picture1(a - 1).Width
        Picture1(a).Left = Picture1(a - 1).Left + Picture1(a - 1).Width + 100
        Picture1(a).Top = Picture1(a - 1).Top
       
    Next i
   
End Sub
Título: Re:Crear y ordenar en tiempo de ejecucion
Publicado por: Bazooka en Julio 30, 2011, 03:18:07 pm
Hola amigo Enter creo que esto que te preparé te debería servir! con algunos arreglos seguro lo adaptarás a tu codigo:



Código: [Seleccionar]
Private Sub Command1_Click()
    Call CrearGrilla
End Sub


Private Sub CrearGrilla()
Dim tmpTop 'variable temporal
Dim tmpLeft 'variable temporal
Dim Espacio 'variable que controla la separacion de los controles

    Espacio = 200

    tmpTop = picture1(0).Top 'asiganamos la posición top del control con index 0 de la matriz
    tmpLeft = picture1(0).Width + Espacio 'asiganamos la posición left + un espaciado del control con index 0 de la matriz
   
    For cant = 1 To txCantidad.Text Step Val(txColumnas)
        For col = 1 To Val(txColumnas.Text)
           
            Load picture1(col + (cant - 1))
            With picture1(col + (cant - 1))
                .Visible = True
                .Left = tmpLeft * (col)
                .Top = tmpTop
            End With
           
            If col + (cant - 1) = Val(txCantidad.Text) Then Exit For
        Next
         tmpTop = tmpTop + picture1(0).Height + Espacio
    Next
End Sub

Saludos desde Argentina!!
Título: Re:Crear y ordenar en tiempo de ejecucion
Publicado por: pedroesca en Julio 30, 2011, 06:19:03 pm
Hola E N T E R, mis disculpas por no haberte respondido mas ayer, me surgió un inconveniente. Paso a lo que nos comPETE:
Hace un tiempo había hecho algo simillar a lo planteado por tí, pero creaba los pictures en lugares predefinidos (no en columnas y filas), así como ves a continuación:
Código: [Seleccionar]
If Rs.RecordCount > 0 Then
        Do While Not Rs.EOF
            Cantidad = Cantidad + 1
            Load imageICON(imageICON.Count)
            imageICON(imageICON.UBound).Tag = Rs!IdPunto
            imageICON(imageICON.UBound).Move Rs!CoordX, Rs!CoordY
            imageICON(imageICON.UBound).Stretch = True
            imageICON(imageICON.UBound).Visible = True
            imageICON(imageICON.UBound).Picture = Me.imageICON(0).Picture
            Rs.MoveNext
        Loop
    End If

Y la imagen la cargaba así
Código: [Seleccionar]
Me.imageICON(0).Picture = LoadPicture(App.Path & "\IconCAPAS\" & Rs!Icono)