EFEITO ZEBRA NO MSFLEXGRID
Ola gente tudo bem
eu to precisando criar o efeito Zebra em um MSFLEXGRID
so que eu carrego o MSFlexGrid assim
set MSFLEXGRID.datasorce= variavel ADO com o recordset carregado
o grid carrega direitinho so que eu não consigo criar a Zebra sabe uma linha do crid branca e a outra azuzinho e assim por diante
eu to precisando criar o efeito Zebra em um MSFLEXGRID
so que eu carrego o MSFlexGrid assim
set MSFLEXGRID.datasorce= variavel ADO com o recordset carregado
o grid carrega direitinho so que eu não consigo criar a Zebra sabe uma linha do crid branca e a outra azuzinho e assim por diante
eu uso esta função em um módulo
para usar no seu form chame assim
onde grid é o nome do flexgrid e vbcyan a cor
[ô]função para zebrar o flexgrid
Function EImpar(ByVal iNum As Long) As Boolean
[ô]Verifica se o número é impar
[ô]Se for impar a função retorna True.
[ô]Se for par a função retorna False.
EImpar = (iNum Mod 2)
End Function
Public Sub ZebraFlex(ByVal flx As MSFlexGridLib.MSFlexGrid, Optional ByVal CorZ As Long = vbInfoBackground)
Dim i As Integer, j As Integer, ImpPar As Integer
With flx
[ô]Pega resto da divisão das linhas fixas por 2,
[ô]isto servirá para iniciar o zebramento a partir da segunda linha após
[ô]a última linha fixa
ImpPar = (.FixedRows Mod 2)
[ô]Não redesenha o grid para agilizar o processo
.Redraw = False
[ô]Loop para ler todas as linhas menos as fixas
For i = .FixedRows To .Rows - 1
[ô]Seleciona a linha
.Row = i
[ô]Loop para ler todas as colunas do grid menos as fixas
For j = .FixedCols To .Cols - 1
[ô]Seleciona a coluna
.Col = j
[ô]Se o resto da divisão do nr da linha por 2 for diferente do ImpPar, então
[ô]pinta com a cor informada, se não pinta com a cor de fundo do grid
If (i Mod 2) <> ImpPar Then .CellBackColor = CorZ _
Else .CellBackColor = .BackColor
Next j
Next i
[ô]Redesenha o grid
.Redraw = True
End With
End Sub
para usar no seu form chame assim
ZebraFlex grid, vbCyan
onde grid é o nome do flexgrid e vbcyan a cor
ou assim:
[ ]'s
Private Sub Command1_Click()
Dim linha As Integer
Dim coluna As Integer
For linha = 2 To grid.Rows - 1 Step 2
grid.Row = linha
For coluna = 1 To grid.Cols - 1
grid.Col = coluna
grid.CellBackColor = vbRed [ô]altere para a cor desejada.
Next coluna
Next linha
End Sub
[ ]'s
Tópico encerrado , respostas não são mais permitidas