Francis
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 29/11/2010 16:09 hs
como criar um efeito zebrado usando este controle? ou msflexgrid, datagrid.
|
|
|
|
vilmarbr
|
SAO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 29/11/2010 17:05 hs
'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
http://www.vilmarbro.com.br
|
|
|
vilmarbr
|
SAO PAULO SP - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 29/11/2010 17:05 hs
outro exemplo: Deixando um FlexGrid Zebrado (com 2 Cores Intercaladas)
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
Sub FlexCores(lCorPar As Long, lCorImpar As Long) Dim iLinha As Integer SeuMSFlexGrid.FillStyle = flexFillRepeat For iLinha = 1 To SeuMSFlexGrid.Rows - 1 With SeuMSFlexGrid .Row = iLinha If EImpar(iLinha) Then 'Se a linha for impar: 'Seleciona a partir da primeira coluna .Col = 1
'Seleciona até a última coluna .ColSel = .Cols - 1
'Aplica a cor .CellBackColor = lCorImpar Else 'Se a linha for par: 'Seleciona a partir da primeira coluna .Col = 1 'Seleciona até a última coluna .ColSel = .Cols - 1 'Aplica a cor .CellBackColor = lCorPar End If End With Next SeuMSFlexGrid.FillStyle = flexFillSingle End Sub
'Sintaxe: FlexCores(Cor das linhas pares, Cor das linhas impares)
'Exemplo: FlexCores(&HFFFFFF, &HC0FFFF) http://forum.imasters.com.br/index.php?/topic/209373-mesclar-linhas/
http://www.vilmarbro.com.br
|
TÓPICO EDITADO
|
|
|
|
Francisco
não registrado
|
|
ENUNCIADA !
|
|
|
Postada em 29/11/2010 18:04 hs
Valeu vou tentar por aqui
|
|
|
|
Postada em 30/11/2010 11:25 hs
O unico problema do zebrado é que quando vc carrega muito registros; ele demora muito ao prencher o grid por conta do cor, mais a dica é boa quem usa poucos registros de uma tabela.
|
|
|