Oi,
Como vcs. fazem para pintar linhas ímpares/pares no vbAccelerator VB6 SGrid Control 2.0?
Sempre usam a linha Grid.AlternateRowBackColor com cor par e a
Grid.GroupRowBackColor como cor ímpar?
Fiz um esquema aqui que só está dando certo pra linhas pares!
Vejam:
If m_frm.Grid.BackColor <> m_Doc.CorFundoGrid Then m_frm.Grid.BackColor = m_Doc.CorFundoGrid
If m_frm.Grid.AlternateRowBackColor <> m_Doc.CelulasCorPar Then m_frm.Grid.AlternateRowBackColor = m_Doc.CelulasCorPar
If m_frm.Grid.GroupRowBackColor <> m_Doc.CelulasCorImpar Then m_frm.Grid.GroupRowBackColor = m_Doc.CelulasCorImpar
Ou seria melhor mesmo assim:
'Se alguma cor foi trocada, repinta todas as celulas presente no grid.
Dim bDeveAtualizarCoresGrid As Boolean
bDeveAtualizarCoresGrid = False
Dim iCol As Integer
Static lCelulasCorImpar As Long
If m_Doc.CelulasCorImpar <> lCelulasCorImpar Then
bDeveAtualizarCoresGrid = True
lCelulasCorImpar = m_Doc.CelulasCorImpar
End If
Static lCelulasCorPar As Long
If m_Doc.CelulasCorPar <> lCelulasCorPar Then
bDeveAtualizarCoresGrid = True
lCelulasCorPar = m_Doc.CelulasCorPar
End If
Static lCorFundoGrid As Long
If m_Doc.CorFundoGrid <> lCorFundoGrid Then
bDeveAtualizarCoresGrid = True
lCorFundoGrid = m_Doc.CorFundoGrid
End If
If bDeveAtualizarCoresGrid Then
m_frm.Grid.BackColor = lCorFundoGrid
For lRow = 1 To m_frm.Grid.Rows
For iCol = 1 To m_frm.Grid.Columns
If lRow Mod 2 <> 0 Then
'Pinta células da linha ímpar.
If lCelulasCorImpar > 0 Then m_frm.Grid.cell(lRow, iCol).BackColor = lCelulasCorImpar
Else
'Pinta células da linha par.
If lCelulasCorPar > 0 Then m_frm.Grid.cell(lRow, iCol).BackColor = lCelulasCorPar
End If
Next iCol
Next lRow
End If
[]'s