Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Redondear + DBGrid1DrawColumnCell (https://www.clubdelphi.com/foros/showthread.php?t=29458)

jonmendi 23-01-2006 12:04:01

Redondear + DBGrid1DrawColumnCell
 
Hola a todos!
tengo que comparar dos columnas de pesos.
Tengo una función redondear que
Código:

function redondear(x:double):double;
begin
  SetRoundMode(rmDown);
  result:= SimpleRoundTo(x,-2);
end;

y lo llamo con
Código:

Table1.Fields[2].AsFloat:= Redondear(Table1.Fields[2].AsFloat);
Cuando hago la comparación en

Código:

procedure TForm1.DBGrid2DrawColumnCell
  (Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn;
    State: TGridDrawState);
begin
    if table1.Fields[2].AsFloat <>  -table1.Fields[3].AsFloat then
      DBGrid2.Canvas.Brush.Color:=clRed;
    DBGrid2.DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;

todas las columnas me aparecen en rojo. En cambio si no lo redondeo, solo me aparecen en rojo las que no coinciden (como debería de ser, pero necesito redondear). Si hago una asignación (solo para probar como va)

Código:

Table1.Fields[2].AsFloat:= 1;
también me aparecen en rojo solo las que no coinciden. Si hago RoundTo, también hace bien la comparación (pero el redondeo es otro cantar).
¿Sabe alguien donde está el misterio?
Muchas gracias!
Jon


uso delphi7, bde,paradox


La franja horaria es GMT +2. Ahora son las 00:34:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi