НЕ ПОЛУЧАЕТСЯ ПОСТРОИТЬ ГРАФИК

  • Автор темы radiokarazinec
  • Дата начала
R

radiokarazinec

Гость
#1
нужно построить график
вот код программы:
Код:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, TeeProcs, TeEngine,Series, Chart;

type
TForm1 = class(TForm)
ListBox1: TListBox;
ListBox2: TListBox;
Button1: TButton;
Chart1: TChart;
BitBtn1: TBitBtn;
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

const
Delim='	';


var
Form1: TForm1;


implementation

{$R *.dfm}
var
Arr1,arr2:array of string;


function FirstToArr1(s:string):string;
begin
//Копируем первую часть строки
Result:=Copy(s,1,AnsiPos(Delim,s)-1);
end;

function secondToArr2(s:string):string;
begin
//Удаляем первую часть строки + делтель, остальное в результат
System.Delete(s, 1, AnsiPos(Delim, s)+3);
Result:=s;
end;

procedure Inpup;
var
i:Integer;
begin
for i:=5 to 45 do
begin
Form1.ListBox1.Items.Add(Arr1[i]);
Form1.ListBox2.Items.Add(Arr2[i]);
end;
Form1.ListBox1.Items.SaveToFile('1.txt');
Form1.ListBox2.Items.SaveToFile('2.txt');
end;



procedure TForm1.Button1Click(Sender: TObject);
var
ts:TStringList;
i:Integer;
myDir:string;
begin
myDir:=ExtractFilePath(ParamStr(0));
ts:=TStringList.Create;
try
ts.LoadFromFile(myDir+'Data.txt');
for i:=0 to ts.Count -1 do
begin
//Заполняем массивы
Arr1[i]:=FirstToArr1(ts.Strings[i]);
Arr2[i]:=secondToArr2(ts.Strings[i]);
end;
Inpup;
finally
ts.Free;
end;
end;






procedure TForm1.BitBtn1Click(Sender: TObject);////ЭТА КНОПКА ОТВЕЧАЕТ ЗА ПОПОСТРОЕНИЕ ГРАФИКА
var
a,b : array of extended;
i:integer;
Line : TLineSeries;
begin
for i:=0 to 44 do
a[i]:=StrToFloat(Arr1[i]);
b[i]:=StrToFloat(Arr2[i]);
Chart1.SeriesList.Clear;
Line := TLineSeries.Create(Chart1);
Line.AddXY(a,b);
//Line.AddArray(b[high(b)]);
Line.LinePen.Color := clBlue;
Line.LinePen.Width := 2;
Chart1.AddSeries(Line);
end;
//Chart1. Series[1].Add(a[high(a)]);
//Chart1. Series[1].Add(b[high(b)]);



end.
у меня есть два ListBox, Chart, и кнонки, при нажатии на кнопку Data в ListBox появляются данные и вот по этим данным мне надо построить график. из одного бокса по точки оси X? из другого по Y. ТАМ В КОДЕ У МЕНЯ ЕЩЕ ИЗ КАЖДОГО ListBoxa записывает значения в 2 текстовых файла. НО есть у меня КАКАЯ-ТО ЗАПАРА НЕ ХОЧЕТ СТРОИТЬ ТО КАКИЕ-ТО ОШИБКИ ВЫДАЕТ. ДО КНОПКИ ПОСТРОЕНИЯ ГРАФИКА ВРОДЕ БЫ КАК ВСЕ РАБОТАЕТ НОРМАЛЬНО...ПОДСОБИТЕ ПЛИЗ ЧТОБЫ ЗАРАБОТАЛО И ПОСТРОИЛО ГРАФИК
ВОТ ЕСЛИ ЧТО ССЫЛКА НА ФАЙЛ
http://ifolder.ru/22136473
 

nayke

Well-Known Member
04.08.2010
310
0
#2
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);////ЭТА КНОПКА ОТВЕЧАЕТ ЗА ПОПОСТРОЕНИЕ ГРАФИКА
var
a,b : array of extended;
i:integer;
Line : TLineSeries;
begin
for i:=0 to 44 do
a[i]:=StrToFloat(Arr1[i]);
b[i]:=StrToFloat(Arr2[i]);
Chart1.SeriesList.Clear;
Line := TLineSeries.Create(Chart1);
Line.AddXY(a,b);
//Line.AddArray(b[high(b)]);
Line.LinePen.Color := clBlue;
Line.LinePen.Width := 2;
Chart1.AddSeries(Line);
end;
//Chart1. Series[1].Add(a[high(a)]);
//Chart1. Series[1].Add(b[high(b)]);



end.
первое

Код:
for i:=0 to 44 do
begin 
a[i]:=StrToFloat(Arr1[i]);
b[i]:=StrToFloat(Arr2[i]);
end;
и второе зачем каждый раз на нажатие кнопки создавать динамически график. создайте series1 через manager в charte определите необходимые свойства и пользуйте series1.clear, series1.addXY(или другие методы добавления)