USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Efeito Zebrado com mshflexgrid
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
Pontos: 2843
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
Pontos: 2843
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
   
Juan Carlos R.A
Pontos: 2843
MACEIO
AL - BRASIL
ENUNCIADA !
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.
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página