Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, parece meio confuso mas vamos lá,
Tenho que montar uma tela de conferência de dados, listo esses dados em uma grid, e vou conferindo os dados linha a linha, após conferir os dados da primeira linha, passarei para a segunda, e a linha de cima muda de cor para constatar que foi lido. Até aí tudo bem, eu conseguir fazer isso colocando um campo chamado LIDO na tabela QueryMovto, e implantei o código.
procedure TFormConfereFilme.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If Dados.QueryMovtoLIDO.Value = 'True' then
Dbgrid1.Canvas.Font.Color:= clGreen;
Dbgrid1.DefaultDrawDataCell(Rect, dbgrid1.columns[datacol].field, State);
end;
Ou seja, quando QueryMovtoLIDO.Value = 'True' a linha fica verde
Até aí estou conseguindo fazer mudar de cor, mas toda hora que passar na coluna LIDO, tenho que escrever True.
Será que tem algum modo de fazer automático, sem ter que ficar escrevendo True toda hora ?
Obrigado desde já.
Então cara beleza,
Acho que eu confundi você, esse True foi um termo que eu usei para mostrar que o campo foi lido,
Ou seja, podia ser qualquer outro valor, exemplo:
If Dados.QueryMovtoLIDO.Value = 'L' then
O que faço é o seguinte: Eu venho apertando Tab no grid conferindo os campos. o campo LIDO é o ultimo campo da
linha, o jeito que eu achei de mudar a cor da linha quando for para a outra linha foi: Quando o campo LIDO for
igual a L, mudar a linha para verde, daí eu digito L, e vou para a próxima linha.
Agora vem o que eu estou querendo: eu quero colocar esse L na tabela no campo LIDO de uma forma automática, e não
digitando.
Ps. Quando abro o Form, estou dando Close e Open na tabela.
E não coloquei um else, pelo fato de não haver outra condição além de lido.
EU ENTENDI AMIGO, nao importa se é true ou L, etc, o que importa é que este campos seja gravado na tabela e recuperado, usando a condição para mudar a cor da linha
Amigo, se você fez um campo true, em QueryMovto
quando você escreve true, você esta alterando a tabela dos dados ?
se estiver ele ficaria true até voce mudar para false,
sendo assim ao iniciar o formulario com esta DB grid, de um close, open, na tabela
e voce nao colocou um ELSE caso o valor nao seja true ai
ela terá que constar o campo como true sim, sem ter que marcar nada
apesar que é dificil saber oque esta fazendo na pratica e de que forma
outra coisa que notei
begin
If Dados.QueryMovtoLIDO.Value = 'True' then
voce tem mais de uma linha de comando ai neste IF, o correto é você por um begin/end ai
begin If Dados.QueryMovtoLIDO.Value = 'True' then begin else begin Dbgrid1.Canvas.Font.Color:= clblack; //cor se for false aquiend;
//e este campo default aqui em baixo