Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ficar Piscando um Determinada Linha do DBGrid


robinhocne

Pergunta

Eu queria que quando fosse um rascunho urgente a determinada linha do grid, ficasse piscando...esses são os dados.

o campo que eu trago a infomarcao se é urgente é o Field 3.

 
procedure TFrmIzaFin.DbgRascunhoDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
 If Not odd(DtsRascunho.DataSet.RecNo) Then
   If Not (gdSelected in State) Then
      begin
         DbgRascunho.Canvas.Brush.Color:=clSkyBlue;
         DbgRascunho.Canvas.FillRect(Rect);
         DbgRascunho.DefaultDrawDataCell(rect,Column.Field,State);
      end;


  if (TAuxDBGrid(DbgRascunho).DataLink.ActiveRecord + 1 = TAuxDBGrid(DbgRascunho).Row) or (gdSelected in State) then
    begin
      DbgRascunho.Canvas.Font.Style  := DbgRascunho.Canvas.Font.Style + [fsBold];
      DbgRascunho.Canvas.Font.Style  := DbgRascunho.Canvas.Font.Style + [fsItalic];
      DbgRascunho.Canvas.Font.Style  := DbgRascunho.Canvas.Font.Style + [fsUnderline];
      DbgRascunho.Canvas.Font.Color  := clblack;
    end;

      if DbgRascunho.Fields[2].AsString = 'N' then
        begin
           DbgRascunho.Canvas.Font.Color  := clblack;
        end
        else
      if DbgRascunho.Fields[2].AsString = 'S' then
        begin
           DbgRascunho.Canvas.Font.Color  := clgray;
        end;

      if DbgRascunho.Fields[3].AsString = 'N' then
        begin
           DbgRascunho.Canvas.Font.Color  := clblack;
        end
        else
      if DbgRascunho.Fields[3].AsString = 'S' then
        begin
           DbgRascunho.Canvas.Font.Color  := clRed;
           DbgRascunho.Canvas.Font.Style  := DbgRascunho.Canvas.Font.Style + [fsBold];
           DbgRascunho.Canvas.Font.Style  := DbgRascunho.Canvas.Font.Style + [fsItalic];
           DbgRascunho.Canvas.Font.Style  := DbgRascunho.Canvas.Font.Style + [fsUnderline];
        end;

      DbgRascunho.Canvas.FillRect(Rect);
      DbgRascunho.Canvas.TextOut(Rect.Left+2,Rect.Top,Column.Field.AsString);
      DbgRascunho.DefaultDrawDataCell(Rect, Column.Field, State);
end;
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Eu queria que determinada linha do grid, ficasse piscando

Veja este exemplo e faça uma adaptação ao seu código

deixar uma celula "piscando" no grid.

var
  Form1: TForm1;
  posicao : TRect;
  cor : TColor;
implementation

{$R *.DFM}

procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
  if gdSelected in State then
    begin
      With (Sender as TDbGrid).Canvas do
        begin
          Brush.Color := clBlue;
          FillRect(Rect);
          posicao:= Rect;
        end;
    end;

  DBGrid1.DefaultDrawDataCell(Rect, Column.Field, State);

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin

  with DbGrid1 do
  begin
     if cor = clWhite then
        begin
           cor := clBlue;
           Canvas.Font.Color := clWhite;
        end
     else
        begin
           cor := clWhite;
           Canvas.Font.Color := clBlack;
        end;

     Canvas.Brush.Color := cor;
     Canvas.TextRect(posicao, posicao.Left + 2, posicao.Top + 2, DBGrid1.SelectedField.Text);
  end;

end;

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...