Главная страница
    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.033 c
1-1092512912
European
2004-08-14 23:48
2004.09.05
Application.ProcessMessages, модальная форма и длительный цикл


1-1092990871
Zhekson
2004-08-20 12:34
2004.09.05
нажатие клавиши


1-1092936808
3APA3A
2004-08-19 21:33
2004.09.05
Правильное использование Dispose()...


14-1092830567
Pul
2004-08-18 16:02
2004.09.05
Аукцион e-Bay


14-1092122469
VMcL
2004-08-10 11:21
2004.09.05
И снова пестня...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский