Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.031 c
14-1092572756
YurikGL
2004-08-15 16:25
2004.09.05
Черный список вредоносных программ


6-1088507166
AVK
2004-06-29 15:06
2004.09.05
Проверка соединения, пинг.


10-1035384970
Erik
2002-10-23 18:56
2004.09.05
Вызов CallBack


1-1092740362
C55
2004-08-17 14:59
2004.09.05
класс TString


14-1092834583
panov
2004-08-18 17:09
2004.09.05
Версия FreeBSD





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский