Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
LarryIca Novato

Registrado: Quarta-Feira, 18 de Julho de 2012 Mensagens: 25
|
Enviada: Ter Ago 07, 2012 10:22 pm Assunto: DBGrid - Inserir uma string |
|
|
Galera no meu soft, quando o status de uma linha é 2 eu pinto ela de vermelho eu queria escrever "CANCELADO" na umtima coluna, a parte da cor funciona perfeitamente.
Código: |
procedure T_cadastroNota.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if DBGrid1.Fields[7].AsString = '2' then
DBGrid1.Canvas.Brush.Color := clRed;
DBGrid1.Fields[8].Text := 'CANCELADO';
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
|
|
|
Voltar ao Topo |
|
 |
Luciano_Lopes Colaborador

Registrado: Quarta-Feira, 23 de Abril de 2008 Mensagens: 1080
|
Enviada: Qua Ago 08, 2012 8:11 am Assunto: |
|
|
coloca assim:
Código: | if DBGrid1.Fields[7].AsString = '2' then
begin
DBGrid1.Canvas.Brush.Color := clRed;
DBGrid1.Fields[8].Text := 'CANCELADO';
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); |
|
|
Voltar ao Topo |
|
 |
LarryIca Novato

Registrado: Quarta-Feira, 18 de Julho de 2012 Mensagens: 25
|
Enviada: Qua Ago 08, 2012 9:53 am Assunto: |
|
|
Obrigado pela ajuda, mas não mudou nada e continua dando erro, acess violation, se eu comento a linha do "CANCELADO" funciona bem |
|
Voltar ao Topo |
|
 |
Batera Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Qua Ago 08, 2012 9:23 pm Assunto: |
|
|
Código: | DBGrid1.Fields[8].Text := 'CANCELADO'; |
O 8º field existe mesmo? Este erro normalmente acontece quando vc aponta uma posição que não existe em uma coleção. |
|
Voltar ao Topo |
|
 |
LarryIca Novato

Registrado: Quarta-Feira, 18 de Julho de 2012 Mensagens: 25
|
Enviada: Qui Ago 09, 2012 9:29 am Assunto: |
|
|
Existe sim, ele consegue chegar no 7, descobrir se é mesmo 2, e o erro continua. |
|
Voltar ao Topo |
|
 |
LarryIca Novato

Registrado: Quarta-Feira, 18 de Julho de 2012 Mensagens: 25
|
Enviada: Qui Ago 09, 2012 9:45 am Assunto: |
|
|
ALguém pode me dar uma luz? Quero que o item cancelado fique com a palavra CANCELADO la no fim do dbgrid, ele ja deixa a linha vermelha tranquilamente. |
|
Voltar ao Topo |
|
 |
tanure Profissional

Registrado: Segunda-Feira, 7 de Novembro de 2011 Mensagens: 712
|
Enviada: Qui Ago 09, 2012 10:16 am Assunto: |
|
|
lembrando que o grid começa da posição 0
estão todos os campos no cds? |
|
Voltar ao Topo |
|
 |
LarryIca Novato

Registrado: Quarta-Feira, 18 de Julho de 2012 Mensagens: 25
|
Enviada: Qui Ago 09, 2012 10:24 am Assunto: |
|
|
não amigo, o ultimo campo eu criei no dbgrid apenas, pois não queria criar mais um campo na tabela apenas para isso, ja que o status porenquanto é um inteiro 1 ou 2 ou 3, onde 2 é cancelado. |
|
Voltar ao Topo |
|
 |
LarryIca Novato

Registrado: Quarta-Feira, 18 de Julho de 2012 Mensagens: 25
|
Enviada: Qui Ago 09, 2012 10:32 am Assunto: |
|
|
Consegui da seginte forma, criei um campo la no dataset, e antes de exibir o dbgrid preciso deixar ele em edit e depois cancelupdates, se alguem tiver esse problema ta ai a solução, obrigado pela ajuda.
Código: |
procedure T_cadastroNota.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
DataModule1.Client_PEGAITEM.Edit;
if DBGrid1.Fields[7].AsString = '2' then
begin
DBGrid1.Fields[8].Text := 'CANCELADO';
DBGrid1.Canvas.Brush.Color := clRed;
end;
DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
DataModule1.Client_PEGAITEM.CancelUpdates;
end;
|
|
|
Voltar ao Topo |
|
 |
|