procedure TForm1.Button2Click(Sender: TObject);
{ Построение синусоиды }
var c,r: integer; x: real;
begin
button1.Click;
with StringGrid1 do begin x:=0;
while x<=10 do begin try
c:=GetColFromX(x_min, x_max, x, stringgrid1.colcount);
r:=GetRowFromY(y_min, y_max, sin(x), stringgrid1.rowcount);
except r:=0; end;
Objects[c,r]:=fp_down;
x:=x+step;
end;
end;
end;
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
{ Нанесение/стирание кружка }
var C, R: Longint; t: TRect;
begin
with StringGrid1 do begin
MouseToCell(X, Y, C, R);
if Objects[c,r]=fp_down then Objects[c,r]:=fp_up else Objects[c,r]:=fp_down;
end;
end;
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
{ Механизм ручной прорисовки ячеек StringGrid }
var t: TRect;
begin
with StringGrid1 do begin
t:=StringGrid1.CellRect(ACol, ARow);
if Objects[ACol, ARow]<>fp_down then begin
canvas.Pen.Color:=clWhite; canvas.Rectangle(t);
end else begin
canvas.Brush.Color:=fp_color; canvas.Pen.Color:=fp_color;
canvas.Ellipse(t);
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
{ Инициализация программы }
begin
label1.Caption:=formatfloat('##0.00',y_max); label2.Caption:=formatfloat('##0.00',y_min);
label3.Caption:=formatfloat('##0.00',x_min); label4.Caption:=formatfloat('##0.00',x_max);
end;
procedure TForm1.Button3Click(Sender: TObject);
{ Выход из программы }
begin
close;