procedure TQRDBGauge.RedrawTo;
…
if FFieldOK then begin
if FDataSet.DefaultFields then FField:=FDataSet.Fields[FFieldNo];
end else begin
FField := nil;
end;
Megnézzük, hogy a mező egész, vagy valós típusú számot tartalmaz-e, és ennek megfelelően olvassuk ki a value változóba.
if Assigned(FField) then begin
if FField.DataType=ftFloat then begin
value := TFloatField(FField).Value;
end else begin
value := TIntegerField(FField).Value;
end;
end else value:=0;
A cw és ch változókban eltároljuk a megrajzolandó sáv szélességét és magasságát. Az x és y változók a megrajzolandó terület koordinátái. Az xp változóban tároljuk a sáv jobb szélének X koordinátáját. A többi már csak egyszerű rajzolás a Canvas-ra (canv paraméter).