Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Chart   Найти похожие ветки 

 
Alex_s   (2004-08-20 09:28) [0]

Господа мастера!
Почему при добавлении диаграммы:
Chart1.AddSeries(Series1);
она не выводится визуально?
Свойства осей:
 BottomAxis.Automatic=true;
 LeftAxis.Automatic=true;
Min и Max пределы значений осей изменяются в зависимости от Min и Max значений диаграммы, а саму диаграмму не видно?


 
Семен Сорокин ©   (2004-08-20 10:23) [1]

а значения в Series1 есть?
приведи весь код добавления.


 
Alex_s   (2004-08-20 10:41) [2]

На корявость кода прошу не обращать внимания, это черновик.

unit uProt;

interface

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

type
 TDan=record
   dan1,dan2,dan3,dan4,dan5:real;
 end;
 TMyThread = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
  end;
 TForm1 = class(TForm)
   Chart1: TChart;
   Chart2: TChart;
   Chart3: TChart;
   GroupBox1: TGroupBox;
   Check1: TCheckBox;
   Check2: TCheckBox;
   Check3: TCheckBox;
   Check4: TCheckBox;
   Check5: TCheckBox;
   Button1: TButton;
   Button2: TButton;
   RG1: TRadioGroup;
   Button3: TButton;
   Edit1: TEdit;
   Button4: TButton;
   Memo1: TMemo;
   procedure Button1Click(Sender: TObject);
   procedure Check1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Check2Click(Sender: TObject);
   procedure RG1Click(Sender: TObject);
   procedure Button3Click(Sender: TObject);
   procedure Button4Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 ZDan:TDan;
 FDan:file of TDan;
 T:TMyThread;
 i:word;
 j:shortint;
 Grafik1,Grafik2,Grafik3,
 Grafik4,Grafik5 : TChartSeries;

implementation

{$R *.dfm}

procedure TMyThread.Execute;
begin
 while not Terminated do
 begin
   if (i mod 2)=0 then j:=50
                  else j:=-50;
   ZDan.dan1:=100+j;
   ZDan.dan2:=200+j;
   ZDan.dan3:=300+j;
   ZDan.dan4:=400+j;
   ZDan.dan5:=500+j;
   Write(FDan,ZDan);
   sleep(200);
   i:=i+1;
   {Synchronize(DoWork);}
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if Button1.Caption="Стоп" then
 begin
   T.Terminate;
   Button1.Caption:="Запись";
   CloseFile(FDan);
   Exit;
 end;
 AssignFile(FDan,"d:\prot.prt");
 Rewrite(FDan);
 i:=1;
 T:=TMyThread.Create(False);
 T.Priority:=tpLower;
 Button1.Caption:="Стоп";
end;

procedure TForm1.Check1Click(Sender: TObject);
begin
    if Check1.Checked then
    begin
     Chart1.AddSeries(Grafik1);
    end else
    begin
     Chart1.RemoveSeries(Grafik1);
     {Chart1.Series[0].Active:=false;}
    end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:word;
begin
 AssignFile(FDan,"d:\prot.prt");
 Reset(FDan);
 i:=0;
 Grafik1:=TChartSeries.Create(nil);
 Grafik2:=TChartSeries.Create(nil);
 Chart1.RemoveAllSeries;
 while not eof(FDan) do
 begin
   read(FDan,ZDan);
   Grafik1.AddXY(i,ZDan.dan1);
   Grafik2.AddXY(i,ZDan.dan2);
   i:=i+1;
 end;
 CloseFile(FDan);
 Chart1.BottomAxis.Automatic:=true;
 Chart1.LeftAxis.Automatic:=true;
end;

procedure TForm1.Check2Click(Sender: TObject);
begin
    if Check2.Checked then
    begin
      Chart1.AddSeries(Grafik2);
      {Chart1.Series[1].Active:=true}
    end else
    begin
      Chart1.RemoveSeries(Grafik2);
      {Chart1.Series[1].Active:=false;}
    end;
end;

end.


 
Семен Сорокин ©   (2004-08-20 11:08) [3]

Grafik1:=TChartSeries.Create(nil);
TChartSeries - абстрактный базовый класс, используйте например TLineSeries или TFastLineSeries.

T:=TMyThread.Create(False);
T.Priority:=tpLower;

обычно пишут так:

T:=TMyThread.Create(true);
T.Priority:=tpLower;
T.Resume

T.Terminate;
добавьте после этой строчки еще вот это:
T.WaitFor;
T.Free;

так как св-во FreeOnTreminate у Вас в True не выставлено.
Кроме этого этот код надо продублировать на onDestroy формы, приложения, иначе некрасиво будет - приложение закрылось а доп. поток продолжает работать.


 
Alex_s   (2004-08-20 11:20) [4]

Спасибо!
Поменял:
Grafik1,Grafik2,Grafik3,Grafik4,Grafik5 : TChartSeries;
на Grafik1,Grafik2,Grafik3,Grafik4,Grafik5 : TLineSeries;
и все Ok!
Учту и другие ваши рекомендации!



Страницы: 1 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
4-1090593005
webpauk
2004-07-23 18:30
2004.09.05
отправка файлов


3-1092047298
Diman
2004-08-09 14:28
2004.09.05
импорт текстовой таблицы в DBGrid


1-1092984256
nicesc
2004-08-20 10:44
2004.09.05
Работа во времени


1-1092744308
pawel
2004-08-17 16:05
2004.09.05
Макроподстановка


14-1092395682
Igorek
2004-08-13 15:14
2004.09.05
Указатели в параметрах WM_ сообщений.