I use follow code to draw grid
procedure TfrmMain.img1DrawBackBuffer(Sender: TObject);
var
i,j: integer;
pt: TPoint;
z:Double;
offx,offy:DOUBLE;
begin
if not btnGridShow.down then
begin
z:=img1.Zoom / 100;
if img1.Zoom<80 then
begin
end
else
begin
with img1.BackBuffer.Canvas do
begin
if img1.ViewX =0 then
begin
offx:=0;
end
else
begin
offx:=((img1.ViewX mod 10)) ;
end;
if img1.ViewY = 0 then
begin
offy := 0 ;
end
else
begin
offy:=((img1.ViewY mod 10)) ;
end;
Pen.Color := clNavy;
Pen.Mode := pmNotXor;
MoveTo ( 0, 0 );
for i := 0 to 120 do
begin
MoveTo ( 0, Trunc(i*11.811*z) ); // draw rows
LineTo ( Trunc(1200*Z),Trunc(i*11.811*z) ) ;
end;
MoveTo ( 0, 0 );
for i := 0 to 100 do
begin
MoveTo ( Trunc(i*11.811*z),0 ); // draw rows
LineTo ( Trunc(i*11.811*z),Trunc(1000*Z )) ;
end;
end;
end;
end;
end;