Visual Basic - SOLUCION CHECK BOX EN MSFlexGrid

Life is soft - evento anual de software empresarial
 
Vista:

SOLUCION CHECK BOX EN MSFlexGrid

Publicado por DIEGO (43 intervenciones) el 16/02/2007 19:35:29
CHECK BOX EN MSFlexGrid:

CODIGO COMPLETO

"NO SOY EL AUTOR DEL CODIGO"

'Written by Chris Pietschmann
'http://PietschSoft.itgo.com

Const strChecked = "þ"
Const strUnChecked = "q"
Private Sub Form_Load()
With MSFlexGrid1
.Rows = 10
.Cols = 3

.AllowUserResizing = flexResizeBoth

'nombre de las columnas
For i = 1 To .Cols - 1
.Row = 0
.Col = i
.Text = "Column " & i
Next i

'name the rows
For i = 1 To .Rows - 1
.Col = 0
.Row = i
.Text = "Row " & i
Next i

'define fields as checkbox
For y = 1 To .Rows - 1
For x = 1 To .Cols - 1
.Row = y
.Col = x
.CellFontName = "Wingdings"
.CellFontSize = 14
.CellAlignment = flexAlignCenterCenter
.Text = strUnChecked
Next x
Next y
End With

End Sub
Private Sub Form_Resize()
MSFlexGrid1.Width = Me.ScaleWidth
MSFlexGrid1.Height = Me.ScaleHeight
End Sub
Private Sub TriggerCheckbox(iRow As Integer, iCol As Integer)
With MSFlexGrid1
If .TextMatrix(iRow, iCol) = strUnChecked Then
.TextMatrix(iRow, iCol) = strChecked
Else
.TextMatrix(iRow, iCol) = strUnChecked
End If
End With
End Sub
Private Sub MSFlexGrid1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Or KeyAscii = 32 Then 'Enter/Space
With MSFlexGrid1
Call TriggerCheckbox(.Row, .Col)
End With
End If
End Sub
Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 1 Then
With MSFlexGrid1
If .MouseRow <> 0 And .MouseCol <> 0 Then
Call TriggerCheckbox(.MouseRow, .MouseCol)
End If
End With
End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

YO LA HAGO MAS BONITO

Publicado por Jacobo (5 intervenciones) el 16/02/2007 20:08:55
Eso, mas bonito y con menos código, verás
En el form tengo dos controles picture con sus correspondientes picture uno marcado y el otro sin marcar (los picture son iconos tipo XP, ya sabes esos bonitos con el reborde en naranja y la marca de color verde). Estos no están visibles en el form.
Al cargar el MSFlexGrid a la primera columna de cada fila (la cero) le asigno el picture sin marcar mediante la propiedad CellPicture y ajusto el ancho de la col, y cargo los datos a partir de la columna uno.
En el evento Click del Grid, compruebo si se pinchó en la columna cero y el valor del CellPicture, si está marcado lo desmarco y si no está marcado lo marco cambiandole el picture.

En total, cuatro o cinco líneas de cógigo y mucho mas profesional. ¿a que sí?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SOLUCION CHECK BOX EN MSFlexGrid

Publicado por Diego (43 intervenciones) el 16/02/2007 21:55:45
Bueno seguramente hay muchas formas de hacerlo . Si podes mandame el codigo , asi veo bien como lo haces.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SOLUCION CHECK BOX EN MSFlexGrid

Publicado por Jacobo (5 intervenciones) el 16/02/2007 23:00:14
NO HACE FALTA QUE PONGA EL CODIGO, LO HE EXPLICADO DETALLADAMENTE.
SI TIENES ALGUNA DUDA LA PREGUNTAS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SOLUCION CHECK BOX EN MSFlexGrid

Publicado por lolo (67 intervenciones) el 16/02/2007 23:40:17
yo si lo entendi y ademas me paresio muy bueno jacobo
espero que nos sigas alludando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SOLUCION CHECK BOX EN MSFlexGrid

Publicado por DIEGO (43 intervenciones) el 17/02/2007 21:41:47
YA LO HIZE COMO VOS JACOBO , Y FUNCIONA CORRECTAMENTE.
PERO BUENO LA VERDAD QUE EN CUESTION DE GUSTOS NO ME PARECIO TAN BONITO COMO VOS DIGISTE.
SIMPLIFICA MUCHO EL CODIGO , PERO EL CODIGO QUE USE ANTERIORMENTE ES TAMBIEN CORTO DENTRO DE TODO.

PERO GRACIAS POR EL APORTE.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar