Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ime en 19 Febrero 2013, 19:55 pm



Título: ayuda vb6
Publicado por: ime en 19 Febrero 2013, 19:55 pm
Hola amigos una ayuda

como puedo pintar las filas de un MSHFlexGrid en vb6 validando una base de datos
por ejemplo  pintar todos lo que tengan un valor a 1 digamos

y que todas la filas se pinten solo los que tengan un uno.




ademas me gustaria saber como pintar filas de MSHFlexGrid cuando voy pasando el mouse. GRACIAS amigos un saludos.


Título: Re: ayuda vb6
Publicado por: Danyfirex en 19 Febrero 2013, 21:38 pm
El titulo debería ser mas descriptivo.  :¬¬
Hay mucho material en google sobre el tema. (http://"http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/214-msflexgrid-color-celda.htm")


Título: Re: ayuda vb6
Publicado por: ime en 19 Febrero 2013, 21:59 pm
With flex
For i = 1 To flex.Rows - 1
            For j = 1 To flex.Cols - 1
                flex.Row = i
                flex.Col = j
                If .Text = "1" Then
                    flex.CellBackColor = &HC0FFC0
                Else
                    'flex.CellBackColor = &H80FF80
                End If
            Next j
        Next i
    End With

Este codigo estoy utilizando pero no me pinta toda la fila solo me pinta una celda como hacer para que pinte todas las filas que equivalen a uno...Gracias


Título: Re: ayuda vb6
Publicado por: ime en 20 Febrero 2013, 17:47 pm
(http://img831.imageshack.us/img831/3098/dibujodnf.jpg) esta es la imagen solo me selecciona el registro que vale SOS, quiero que me seleccione toda la fila que vale SOS.

este es el codigo, utilizo 2 timer para parpadear la fila que vale SOS

Private Sub Timer4_Timer()
Dim i
Dim j

For i = 1 To flex.Rows - 1
            For j = 1 To flex.Cols - 1
                flex.Row = i
                flex.Col = j
               
                If flex.Text = "SOS" Then
                 
                     flex.CellBackColor = vbRed
                End If
            Next j
        Next i
    Timer4.Enabled = False
    Timer5.Enabled = True
    Timer2.Enabled = True
End Sub


Private Sub Timer5_Timer()

    For s = 1 To flex.Cols - 1
    For c = 1 To flex.Rows - 1
   
        flex.Row = c
        flex.Col = s
    If flex.Text = "SOS" Then
    flex.CellBackColor = vbYellow
    End If
       Next c
    Next s
    Timer4.Enabled = True
    Timer5.Enabled = False
    Timer2.Enabled = True
   
End Sub



Título: Re: ayuda vb6
Publicado por: Danyfirex en 20 Febrero 2013, 22:33 pm
bueno vamos a darte una manito  :rolleyes:

podrías hacerlo así.

Código
  1. Dim i As Long
  2. 'MsgBox (flex.Rows) numero de filas
  3. 'MsgBox flex.TextMatrix(1, 2) tipo matriz
  4. For i = 1 To flex.Rows - 1
  5. Debug.Print flex.TextMatrix(i, 2) 'leo siempre en la columna 2 y respectivamente con I
  6. If flex.TextMatrix(i, 2) = "SOS" Then ' si quieres pintar toda la fila solo haces el inverso.
  7. flex.Col = 2
  8. flex.Row = i
  9. flex.CellBackColor = vbRed
  10. End If
  11. Next i

saludos


Título: Re: ayuda vb6
Publicado por: ime en 20 Febrero 2013, 22:57 pm
gracias amigo, saludos para ti gracias por tu ayuda.