DUVIDA COLORIR FLEXGRID

CHARLESTON10 16/12/2010 13:11:06
#359668
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
CHARLESTON10 16/12/2010 15:35:47
#359689
>>> Up!
XXXANGELSXXX 17/12/2010 08:54:43
#359727
Duvida 1 ) voce tem que fazer um loop colorindo o mesmo de acordo com as informacoes que contiverem no grid, exemplo..

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
CHARLESTON10 18/12/2010 11:53:52
#359842
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ç
JEISONANTONI 20/12/2010 13:16:07
#359990
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[Ô].
CHARLESTON10 20/12/2010 17:33:00
#360016
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

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?
MARCELO.TREZE 20/12/2010 19:39:14
#360026
Resposta escolhida
Criei um exemplo para vc.

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.

CHARLESTON10 22/12/2010 17:53:04
#360241
  MARCELO-TREZE 


Perfeito era isso mesmo que eu precisava!


valeu,

uma pergunta antes de encerrar o topico, vc tem msn para passar pra mim?
MARCELO.TREZE 23/12/2010 10:42:38
#360268
treze-vb@hotmail.com
CHARLESTON10 23/12/2010 11:15:10
#360273
valeu ;]
Tópico encerrado , respostas não são mais permitidas