Здравствуйте. В программе пользователь вводит начальное и конечное значение х(xn и xk соответственно), шаг h и коэфициент а. Button1 расчитывает значения функции и заносит из в StringGrid1, при нажатии на Button2 должен создаваться график на основе полученны х и у из StringGrid1, но мне выдаёт ошибку "" is an invalid float. В чём проблема?
- Код: Выделить всё
- unit Unit1; 
 
 {$mode objfpc}{$H+}
 
 interface
 
 uses
 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
 StdCtrls, Grids, Menus, TAGraph, TASeries, PrintersDlgs, Printers;
 
 type
 
 { TForm1 }
 
 TForm1 = class(TForm)
 Button1: TButton;
 Button2: TButton;
 Chart1: TChart;
 Chart1LineSeries1: TLineSeries;
 Chart1LineSeries2: TLineSeries;
 Edit1: TEdit;
 Edit2: TEdit;
 Edit3: TEdit;
 Edit4: TEdit;
 Label1: TLabel;
 Label2: TLabel;
 Label3: TLabel;
 Label4: TLabel;
 MainMenu1: TMainMenu;
 MenuItem1: TMenuItem;
 MenuItem2: TMenuItem;
 Panel1: TPanel;
 StringGrid1: TStringGrid;
 procedure Button1Click(Sender: TObject);
 procedure Button2Click(Sender: TObject);
 procedure FormCreate(Sender: TObject);
 procedure MenuItem1Click(Sender: TObject);
 procedure MenuItem2Click(Sender: TObject);
 private
 { private declarations }
 public
 { public declarations }
 end;
 
 var
 Form1: TForm1;i:integer;
 
 implementation
 
 {$R *.lfm}
 
 { TForm1 }
 
 procedure TForm1.MenuItem1Click(Sender: TObject);
 begin
 Close;
 end;
 
 procedure TForm1.Button1Click(Sender: TObject);
 var x,y,a,xk,h:real; j:integer;
 begin
 x:=StrToFloat(Edit1.Text);;
 xk:=StrToFloat(Edit2.Text);
 i:=1;
 h:=StrToFloat(Edit3.Text);
 a:=StrToFloat(Edit4.Text);
 with StringGrid1 do begin
 RowCount:=24;
 for j:=1 to RowCount-1 do begin
 Cells[0,j]:='';
 Cells[1,j]:='';
 end;
 while x<=xk do begin
 Cells[0,i]:=FloatToStr(x);
 y:=sqrt(x*x*x);
 Cells[1,i]:=FloatToStr(y);
 inc(i);
 x:=x+h;
 if  RowCount=i then RowCount:=RowCount+1;
 end;
 end;
 end;
 
 procedure TForm1.Button2Click(Sender: TObject);
 var x,y,a,xk,h:real; j:integer;
 begin
 with StringGrid1 do
 for j:=1 to i-1 do begin
 x:=StrToFloat(Cells[0,i]);
 y:=StrToFloat(Cells[1,i]);
 
 With  Chart1LineSeries1 do begin
 AddXY(x,y,'',clBlack);
 
 end;
 end;
 end;
 
 
 
 procedure TForm1.FormCreate(Sender: TObject);
 begin
 with StringGrid1 do begin
 Cells[0,0]:='X';
 Cells[1,0]:='Y';
 end;
 end;
 
 procedure TForm1.MenuItem2Click(Sender: TObject);
 
 begin
 
 end;
 
 end.