Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: NolO en Marzo 22, 2010, 01:15:10 pm
-
Hola en esta oportunidad vengo con este problema que se me presento por un cambio solicitado en una de las pantallas del sistema que vengo desarrollando, vay a tratar de ser lo mas claro que pueda.
Tengo una pantalla en la cual se muestran una relacion de locales, en la misma relacion se muestra la situacion de su cuenta(Cta Activa,Cta Cerrada, Cta Congelada, Cta Reaperturada) y otras observaciones, la cosa es que me pidieron que haga algo similar al grafico que les muestro, indicando por colores la situacion del local.
(http://s3.subirimagenes.com:81/otros/previo/thump_4246012listado.jpg)
Estoy usando un listview, consigo cargarlo y colocar el fondo de color segun su estado, pero el detalle es que no consigo mostrarlo de la misma manera que el grafico que me mostraron.
(http://s3.subirimagenes.com:81/otros/previo/thump_4246134lomio.jpg)
he estado viendo la propiedades del listview pero hasta ahora no doy como hacer que el fondo se muestre igual al de la imagen anterior. Quiza deba usar otro control o mi cerebro se saturo de tanto code que he estado viendo y haciendo que no veo la luz y darle solucion a esto, quiza sea algo simple que estoy dejando pasar.
Desde gracias por su tiempo y apoyo.
Saludos.
-
Para hacerlo simple con el ListView, no se puede... Debes usar una clase que por cierto leandro ha creado una que podría hacer lo que requieres, con ciertas modificaciones claro está...
Otra opción es usar un picture e ir dibujando todo, pero yo lo creo un poco más complicado...!
-
Pues sí como dice ssccaann43 lo que podrias hacer es poner un picturebox con index 0 e ir cargando los controles de en modo ejecución y luego ir ajustandolos con un poco de matemáticas para que te queden de la forma que quieras e ir alternando los colores de fondo según lo necesites... Vamos un algoritmo simple .. Saludos :P
-
Antes de nada gracias por su tiempo, ayuda y consejos, he estado haciendo algunas pruebas con los picturebox.
Ahora una pregunta:
Me traeria problemas crear un array de controles y cargarlos segun la cantidad de registros y claro que tambien modificaria el estilo de los mismo a mi conveniencia, el hacer esto me consumiria mucho recurso?.
Digo esto xq en realidad se me hace mas facil trabajarlo con un array de controles.
Nuevamente gracias por su tiempo.
Saludos.
-
Antes de nada gracias por su tiempo, ayuda y consejos, he estado haciendo algunas pruebas con los picturebox.
Ahora una pregunta:
Me traeria problemas crear un array de controles y cargarlos segun la cantidad de registros y claro que tambien modificaria el estilo de los mismo a mi conveniencia, el hacer esto me consumiria mucho recurso?.
Digo esto xq en realidad se me hace mas facil trabajarlo con un array de controles.
Nuevamente gracias por su tiempo.
Saludos.
hacelo con el array nomas, es facil y no es "pesado"...
saludos.
-
Si sigues con la idea de algo similar a lo que comentas en el inicio, puedes hacerlo con un MSFlexgrid, si quieres prueba insertando un MsFlexgrid1 en un formulario y ejecuta este código
Private Sub Form_Load()
Dim Columna As Single, Fila As Single, Numero As Single, MiColor As Integer, Pixels As Single
Pixels = 400
MSFlexGrid1.Move 0, 0
MSFlexGrid1.Cols = 24
MSFlexGrid1.Rows = 10
MSFlexGrid1.FixedCols = 0
MSFlexGrid1.FixedRows = 0
MSFlexGrid1.BackColor = &HFFC0C0
For Columna = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.ColWidth(Columna) = Pixels
Next
For Fila = 0 To MSFlexGrid1.Rows - 1
MSFlexGrid1.RowHeight(Fila) = Pixels
For Columna = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Row = Fila
MSFlexGrid1.Col = Columna
MSFlexGrid1.CellAlignment = 4
Numero = Numero + 1
MSFlexGrid1.TextMatrix(Fila, Columna) = Numero
MiColor = Int(Rnd(1) * 15) + 1
MSFlexGrid1.CellBackColor = QBColor(MiColor)
Next
Next
MSFlexGrid1.Height = (MSFlexGrid1.Rows + 1) * Pixels
MSFlexGrid1.Width = (MSFlexGrid1.Cols + 1) * Pixels
Me.Width = MSFlexGrid1.Width + Pixels
Me.Height = MSFlexGrid1.Height + Pixels
End Sub
-
Si sigues con la idea de algo similar a lo que comentas en el inicio, puedes hacerlo con un MSFlexgrid, si quieres prueba insertando un MsFlexgrid1 en un formulario y ejecuta este código
Private Sub Form_Load()
Dim Columna As Single, Fila As Single, Numero As Single, MiColor As Integer, Pixels As Single
Pixels = 400
MSFlexGrid1.Move 0, 0
MSFlexGrid1.Cols = 24
MSFlexGrid1.Rows = 10
MSFlexGrid1.FixedCols = 0
MSFlexGrid1.FixedRows = 0
MSFlexGrid1.BackColor = &HFFC0C0
For Columna = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.ColWidth(Columna) = Pixels
Next
For Fila = 0 To MSFlexGrid1.Rows - 1
MSFlexGrid1.RowHeight(Fila) = Pixels
For Columna = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Row = Fila
MSFlexGrid1.Col = Columna
MSFlexGrid1.CellAlignment = 4
Numero = Numero + 1
MSFlexGrid1.TextMatrix(Fila, Columna) = Numero
MiColor = Int(Rnd(1) * 15) + 1
MSFlexGrid1.CellBackColor = QBColor(MiColor)
Next
Next
MSFlexGrid1.Height = (MSFlexGrid1.Rows + 1) * Pixels
MSFlexGrid1.Width = (MSFlexGrid1.Cols + 1) * Pixels
Me.Width = MSFlexGrid1.Width + Pixels
Me.Height = MSFlexGrid1.Height + Pixels
End Sub
Gracias amigo por el code.
Nuevamente gracias por ayuda.