Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Usando Lazarus fonte dbgrid em valor negativo


Question

Olá!!

Estou usando esta rotina para tentar pintar valores negativos no DBgrid do Lazarus que deve ser parecido com com Delphi,

mas estou recebendo um erro  no valor de canvas:

DBGrid1.Canvas.Font.Color:= clRed;     O Lazarus não reconhece a constante  clRed

 

procedure Tform1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
BEGIN
     if (Column.Field.FieldName = 'campovalor') then
    begin
         if (Dtm.ZQuery1.FieldByName('campoValor').Value   < 0)   then
         begin

              DBGrid1.Canvas.Font.Color:= clRed;
           end
           else
              DBGrid1.Canvas.Font.Color:= clWindowText;
              DBGrid1.Canvas.FillRect(Rect);
              DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end;
END;
                                   ERRO:   form1.pas   Error: Identifier not found "clRed"

 

alguém poderia me auxiliar por gentileza?! grato.

Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

 Já li todos as dicas. Agradeço. Ate usei uma delas mas o problema parece outro que nunca vi antes:

  Não compila com estes erros:

Error: Incompatible type for arg no. 1: Got "Constant String", expected "TGraphicsColor"
Error: identifier idents no member "DefaultDrawDataCell"
Error: identifier idents no member "DefaultDrawDataCell"
 

Uso  é com Lazarus 2.0.8.

Link to post
Share on other sites
  • 0

Erro: Tipo incompatível para arg nº. 1: Obtido "String constante", esperado "TGraphicsColor"

Erro: identificador idents não é  membro  de "DefaultDrawDataCell"

Obs: Não dá pra advinhar o código que voce colocou no evento :

procedure Tform1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

Link to post
Share on other sites
  • 0

Olá Jhonas.

É o mesmo do post anterior:

De qualquer forma e qualquer modelo de procedimento que testei esbarra sempre neste detalhe desta constante de cor ou outra qualquer:

 

procedure Tform1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
BEGIN
     if (Column.Field.FieldName = 'campovalor') then
    begin
         if (Dtm.ZQuery1.FieldByName('campoValor').Value   < 0)   then
         begin

              DBGrid1.Canvas.Font.Color:= clRed;
           end
           else
              DBGrid1.Canvas.Font.Color:= clWindowText;
              DBGrid1.Canvas.FillRect(Rect);
              DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end;
END;
                            

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      148676
    • Total Posts
      644492
×
×
  • Create New...