DUVIDA COLORIR FLEXGRID
Estou com dois problemas.
Como faço para colorir o msFlexGrid de acordo com o que esta no banco de dados? Explicando
Suponhamos que eu tenho uma tabela e nessa tabela tenho um campo que diz se uma conta foi vencida ou não
E nesse campo é preenchido como (SIM ou NÃO).
Agora para colorir o FlexGrid:
Se a coluna X estiver algum campo escrito SIM: Preencher com a cor Azul
Se estiver escrito NÃO: Preencher com a cor Vermelha.
OBS.: Toda a linha com o BackColor (Cor do fundo) Azul ou Vermelha
Duvida dois (2):
Como faço para colorir a linha inteira com a Cor Verde quando eu clicar em uma determinada linha?
Obs.: Quando eu clicar numa linha essa linha muda de cor e quando eu clicar em outra linha muda a cor e a anterior volta a cor normal (branco)
Agradeço a todos do VBMania por colaborarem
Como faço para colorir o msFlexGrid de acordo com o que esta no banco de dados? Explicando
Suponhamos que eu tenho uma tabela e nessa tabela tenho um campo que diz se uma conta foi vencida ou não
E nesse campo é preenchido como (SIM ou NÃO).
Agora para colorir o FlexGrid:
Se a coluna X estiver algum campo escrito SIM: Preencher com a cor Azul
Se estiver escrito NÃO: Preencher com a cor Vermelha.
OBS.: Toda a linha com o BackColor (Cor do fundo) Azul ou Vermelha
Duvida dois (2):
Como faço para colorir a linha inteira com a Cor Verde quando eu clicar em uma determinada linha?
Obs.: Quando eu clicar numa linha essa linha muda de cor e quando eu clicar em outra linha muda a cor e a anterior volta a cor normal (branco)
Agradeço a todos do VBMania por colaborarem
>>> Up!
Duvida 1 ) voce tem que fazer um loop colorindo o mesmo de acordo com as informacoes que contiverem no grid, exemplo..
Veja so, no meu caso aqui, se a colluna 7 tiver com as situacoes acima ele vai colorir com o evento cellbackcolor = a cor desejada.
Duvida 2 ) coloque a opçao seugrid.SelectionMode = 1
Sub ColorirGrid()
Dim iL As Integer, iC As Integer
With TDBGrid1
For iL = 1 To .Rows - 1
For iC = 0 To .Cols - 1
.Col = iC
.Row = iL
If .TextMatrix(.Row, 7) = [Ô]1-Aguardando[Ô] Then
.CellBackColor = &HC0C0FF
ElseIf .TextMatrix(.Row, 7) = [Ô]2-Pendente[Ô] Then
.CellBackColor = &HC0E0FF
ElseIf .TextMatrix(.Row, 7) = [Ô]3-Analisando[Ô] Then
.CellBackColor = &HC0FFFF
ElseIf .TextMatrix(.Row, 7) = [Ô]4-Concluida[Ô] Then
.CellBackColor = &HC0FFC0
ElseIf .TextMatrix(.Row, 7) = [Ô]5-Cancelada[Ô] Then
.CellBackColor = &HFF&
End If
Next iC
Next iL
End With
End Sub
Veja so, no meu caso aqui, se a colluna 7 tiver com as situacoes acima ele vai colorir com o evento cellbackcolor = a cor desejada.
Duvida 2 ) coloque a opçao seugrid.SelectionMode = 1
Obrigado Angel =]
um probleminha meu FlexGrid com o select mode =1 nao funcionou com o explicado em cima
teria um exemplo, ou imagem mostrando ?
abç
um probleminha meu FlexGrid com o select mode =1 nao funcionou com o explicado em cima
teria um exemplo, ou imagem mostrando ?
abç
bem para que a cor da linha selecionada fique como desejado.
vc tem q colokar a cor desejada na propriedade BackColorSel do grid e tbm fazer conforme nosso amigo charleston10 falou, colokar a propriedade selectionmode = 1 [Ô]flexSelectionByRow[Ô].
vc tem q colokar a cor desejada na propriedade BackColorSel do grid e tbm fazer conforme nosso amigo charleston10 falou, colokar a propriedade selectionmode = 1 [Ô]flexSelectionByRow[Ô].
Funcionou aqui perfeitamente o SelectionMode = 1 no FlexGrid
mas o codigo que verifico o que esta escrito na coluna e mudo a cor da linha nao funcionou
seria essa a duvida:
Se a coluna X estiver algum campo escrito SIM: Preencher com a cor Azul
Se estiver escrito NÃO: Preencher com a cor Vermelha
tem como fazer com outro codigo?
mas o codigo que verifico o que esta escrito na coluna e mudo a cor da linha nao funcionou
seria essa a duvida:
Se a coluna X estiver algum campo escrito SIM: Preencher com a cor Azul
Se estiver escrito NÃO: Preencher com a cor Vermelha
Citação:Sub ColorirGrid()
Dim iL As Integer, iC As Integer
With TDBGrid1
For iL = 1 To .Rows - 1
For iC = 0 To .Cols - 1
.Col = iC
.Row = iL
If .TextMatrix(.Row, 7) = [Ô]1-Aguardando[Ô] Then
.CellBackColor = &HC0C0FF
ElseIf .TextMatrix(.Row, 7) = [Ô]2-Pendente[Ô] Then
.CellBackColor = &HC0E0FF
ElseIf .TextMatrix(.Row, 7) = [Ô]3-Analisando[Ô] Then
.CellBackColor = &HC0FFFF
ElseIf .TextMatrix(.Row, 7) = [Ô]4-Concluida[Ô] Then
.CellBackColor = &HC0FFC0
ElseIf .TextMatrix(.Row, 7) = [Ô]5-Cancelada[Ô] Then
.CellBackColor = &HFF&
End If
Next iC
Next iL
End With
End Sub
tem como fazer com outro codigo?
Criei um exemplo para vc.
na realidade vc irá aproveitar a função colore linhas
esta função foi feita para funcionar de maneira bem genérica onde vc determina o que deseja
[txt-color=#007100][ô] ColoreLinhas [NomeDoSeuFlex], [Texto a ser consultado], [coluna de consulta],[cor para verdaeiro],[cor para falso][/txt-color]
ex:
ColoreLinhas MSFlexgrid1, [Ô]sim[Ô], 2, vbBlue, vbRed
acim a função verificará se a coluna 2 possui a palavra [Ô]sim[Ô], se possuir pinta a linha de azul, caso contrario pinta a linha de vermelho.
bom esta função pode ser adaptada para ser mais gererica ainda, basta vc ver suas necessidades e te ajudo com as alterações.
na realidade vc irá aproveitar a função colore linhas
Function ColoreLinhas(flxgd As MSFlexGrid, Conteudo As String, coluna As Integer, CorParaVerdadeiro As OLE_COLOR, CorParaFalso As OLE_COLOR)
With flxgd
For p = 1 To .Rows - 1
If .TextMatrix(p, coluna) = Conteudo Then
For c = 0 To .Cols - 1
.Row = p
.Col = c
.CellForeColor = CorParaVerdadeiro
Next c
Else
For c = 0 To .Cols - 1
.Row = p
.Col = c
.CellForeColor = CorParaFalso
Next c
End If
Next p
End With
End Function
esta função foi feita para funcionar de maneira bem genérica onde vc determina o que deseja
[txt-color=#007100][ô] ColoreLinhas [NomeDoSeuFlex], [Texto a ser consultado], [coluna de consulta],[cor para verdaeiro],[cor para falso][/txt-color]
ex:
ColoreLinhas MSFlexgrid1, [Ô]sim[Ô], 2, vbBlue, vbRed
acim a função verificará se a coluna 2 possui a palavra [Ô]sim[Ô], se possuir pinta a linha de azul, caso contrario pinta a linha de vermelho.
bom esta função pode ser adaptada para ser mais gererica ainda, basta vc ver suas necessidades e te ajudo com as alterações.
MARCELO-TREZE
Perfeito era isso mesmo que eu precisava!
valeu,
uma pergunta antes de encerrar o topico, vc tem msn para passar pra mim?
treze-vb@hotmail.com
valeu ;]
Tópico encerrado , respostas não são mais permitidas