Pintar DBGrid...
Pessoal tenho o seguite código no [b:5b918079bc]OnDrawCollumCel[/b:5b918079bc]:Quero que meus alunos transferidos sejam destacados... só que estou tendo um comportamento estranho...[list=1:5b918079bc]
[*:5b918079bc]A primeira coluna da linha dos matriculados só é pintada quando cliquo na mesma;
[*:5b918079bc]As duas primeiras colunas ficam com a fonte branca independente se está transferido ou não;
[*:5b918079bc]O restante das colunas ficam com a fonte preta independente se está transferido ou não;
[*:5b918079bc]Só consigo navegar no grid após apertar a seta ´pra baixo´ (down);
[/list:o:5b918079bc]Estou realmente muito confuzo já que é massante depurar código nesse evento... :?:
with BrDbGrdAlunosMedias do begin if ((gdSelected in State) = False) and (DataSource.DataSet. FieldByName(´SituacaoAtual´).AsString = ´Transferido´) then begin BrDbGrdAlunosMedias.Canvas.Brush.Color := clBtnShadow; BrDbGrdAlunosMedias.Font.Color := clWhite; BrDbGrdAlunosMedias.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end;
[*:5b918079bc]A primeira coluna da linha dos matriculados só é pintada quando cliquo na mesma;
[*:5b918079bc]As duas primeiras colunas ficam com a fonte branca independente se está transferido ou não;
[*:5b918079bc]O restante das colunas ficam com a fonte preta independente se está transferido ou não;
[*:5b918079bc]Só consigo navegar no grid após apertar a seta ´pra baixo´ (down);
[/list:o:5b918079bc]Estou realmente muito confuzo já que é massante depurar código nesse evento... :?:
Bruno Belchior
Curtidas 0
Respostas
Bruno Belchior
09/09/2005
sobe...
GOSTEI 0
Marco Salles
09/09/2005
Parece estranho , mas esta instrução
[b:c124075e25]Não deveria estar fora do Bloco if then end;[/b:c124075e25] :?: :?: :?:
BrDbGrdAlunosMedias.DefaultDrawColumnCell(Rect, DataCol, Column, State);
[b:c124075e25]Não deveria estar fora do Bloco if then end;[/b:c124075e25] :?: :?: :?:
GOSTEI 0
Bruno Belchior
09/09/2005
até onde sei [b:6dc2b8c207]não[/b:6dc2b8c207]... se eu [b:6dc2b8c207]não[/b:6dc2b8c207] chamá-la, é porque quero pintar os valores padrões... ou estou errado :?:
GOSTEI 0
Marco Salles
09/09/2005
até onde sei não... se eu não chamá-la, é porque quero pintar os valores padrões... ou estou errado
Depende de como esta a sua propriedade defaltDrawing
se voce deixar a propriedade defaltDraing configurado em true , a grade apresentara a saida padrão , mas se voce deixar a Propriedade defaltDrawing em false voce deve chamar o metodo DafeltDrawColumnCell.
GOSTEI 0
Bruno Belchior
09/09/2005
Mas ela está em True...
GOSTEI 0
Cabelo
09/09/2005
[quote:189dfe7802=´Bruno Belchior´]Pessoal tenho o seguite código no [b:189dfe7802]OnDrawCollumCel[/b:189dfe7802]:Quero que meus alunos transferidos sejam destacados... só que estou tendo um comportamento estranho...[list=1:189dfe7802]
[*:189dfe7802]A primeira coluna da linha dos matriculados só é pintada quando cliquo na mesma;
[*:189dfe7802]As duas primeiras colunas ficam com a fonte branca independente se está transferido ou não;
[*:189dfe7802]O restante das colunas ficam com a fonte preta independente se está transferido ou não;
[*:189dfe7802]Só consigo navegar no grid após apertar a seta ´pra baixo´ (down);
[/list:o:189dfe7802]Estou realmente muito confuzo já que é massante depurar código nesse evento... :?:[/quote:189dfe7802]
Neste trecho...
será que vc está fazendo a pergunta certa??
if ((gdSelected in State) = False) and (DataSource.DataSet.
FieldByName(´SituacaoAtual´).AsString = ´Transferido´) then
begin
BrDbGrdAlunosMedias.Canvas.Brush.Color := clBtnShadow;
BrDbGrdAlunosMedias.Font.Color := clWhite;
BrDbGrdAlunosMedias.DefaultDrawColumnCell(Rect, DataCol, Column, State);
tente assim.. acho que resolve..
if Trim(DataSource.DataSet.
FieldByName(´SituacaoAtual´).AsString) = ´Transferido´ then
begin
BrDbGrdAlunosMedias.Canvas.Brush.Color := clBtnShadow;
BrDbGrdAlunosMedias.Font.Color := clWhite;
BrDbGrdAlunosMedias.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Se vc quiser somente destacar quando clicar na coluna do grid, aí sim vc coloca assim..
if ((gdSelected in State) = False) and (Trim(DataSource.DataSet.
FieldByName(´SituacaoAtual´).AsString) = ´Transferido´) then
begin
BrDbGrdAlunosMedias.Canvas.Brush.Color := clBtnShadow;
BrDbGrdAlunosMedias.Font.Color := clWhite;
BrDbGrdAlunosMedias.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Espero ter ajudado..
with BrDbGrdAlunosMedias do begin if ((gdSelected in State) = False) and (DataSource.DataSet. FieldByName(´SituacaoAtual´).AsString = ´Transferido´) then begin BrDbGrdAlunosMedias.Canvas.Brush.Color := clBtnShadow; BrDbGrdAlunosMedias.Font.Color := clWhite; BrDbGrdAlunosMedias.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; end;
[*:189dfe7802]A primeira coluna da linha dos matriculados só é pintada quando cliquo na mesma;
[*:189dfe7802]As duas primeiras colunas ficam com a fonte branca independente se está transferido ou não;
[*:189dfe7802]O restante das colunas ficam com a fonte preta independente se está transferido ou não;
[*:189dfe7802]Só consigo navegar no grid após apertar a seta ´pra baixo´ (down);
[/list:o:189dfe7802]Estou realmente muito confuzo já que é massante depurar código nesse evento... :?:[/quote:189dfe7802]
Neste trecho...
será que vc está fazendo a pergunta certa??
if ((gdSelected in State) = False) and (DataSource.DataSet.
FieldByName(´SituacaoAtual´).AsString = ´Transferido´) then
begin
BrDbGrdAlunosMedias.Canvas.Brush.Color := clBtnShadow;
BrDbGrdAlunosMedias.Font.Color := clWhite;
BrDbGrdAlunosMedias.DefaultDrawColumnCell(Rect, DataCol, Column, State);
tente assim.. acho que resolve..
if Trim(DataSource.DataSet.
FieldByName(´SituacaoAtual´).AsString) = ´Transferido´ then
begin
BrDbGrdAlunosMedias.Canvas.Brush.Color := clBtnShadow;
BrDbGrdAlunosMedias.Font.Color := clWhite;
BrDbGrdAlunosMedias.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Se vc quiser somente destacar quando clicar na coluna do grid, aí sim vc coloca assim..
if ((gdSelected in State) = False) and (Trim(DataSource.DataSet.
FieldByName(´SituacaoAtual´).AsString) = ´Transferido´) then
begin
BrDbGrdAlunosMedias.Canvas.Brush.Color := clBtnShadow;
BrDbGrdAlunosMedias.Font.Color := clWhite;
BrDbGrdAlunosMedias.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Espero ter ajudado..
GOSTEI 0
Marco Salles
09/09/2005
Mas ela está em True...
é isto que eu disse
Coloque a em false e coloque O Codigo DefaultDrawColumnCell Fora do Bloco If Ten
Código: BrDbGrdAlunosMedias.DefaultDrawColumnCell(Rect, DataCol, Column, State);
GOSTEI 0