K
KuevProger
Приветствую многоувашаемые прогеры!)
У меня такая проблема при выставлении свойства BottomAxis.Increment шкала оси пропадает(промежуток времени) т.е. вообще никаких данных не остается ХЕЛПАНИТЕ кто чем может
Листинг:
У меня такая проблема при выставлении свойства BottomAxis.Increment шкала оси пропадает(промежуток времени) т.е. вообще никаких данных не остается ХЕЛПАНИТЕ кто чем может
Листинг:
Код:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, Grids,inifiles,
Menus, Mask, Spin, OleCtrls, Chartfx3;
type
TtrendThread = class(TThread)
private
protected
procedure Execute; override;
end;
type
TForm3 = class(TForm)
Chart1: TChart;
Timer1: TTimer;
Panel1: TPanel;
Series1: TFastLineSeries;
SG_graph: TStringGrid;
Label1: TLabel;
Label4: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
me_MinFz: TEdit;
me_MaxFz: TEdit;
bt_Da: TButton;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
Ed_promVrem: TEdit;
Label5: TLabel;
Label2: TLabel;
Ed_razmY: TEdit;
Label3: TLabel;
Ed_razmX: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
TrendThread:TtrendThread;
Form3: TForm3;
procedure StartTrend;
implementation
uses U_Main;
{$R *.dfm}
procedure StartTrend;
begin
TrendThread:=TtrendThread.Create(True);
with TrendThread do begin
Priority:=tpNormal;
FreeOnTerminate:=True;
Resume;
end;
end;
Procedure TtrendThread.Execute;
var
d,t:TDateTime;
prom:byte;
Hour, Min, Sec, MSec: Word;
begin
d:=time;
if d>Form3.Chart1.BottomAxis.Maximum then
begin
prom:=StrToInt(Form3.Ed_promVrem.Text);
d:=Form3.Chart1.BottomAxis.Maximum;
DecodeTime(d,Hour, Min, Sec, MSec);
Min:=Min+prom; //надо сделать проверку на минуты
T:= EncodeTime(Hour, Min, Sec, MSec);
Form3.Chart1.BottomAxis.SetMinMax(d,t);
end;
Form3.Chart1.series[0].AddXY(d,value[9]);
Form3.SG_graph.Cells[1,0]:=FloatToStr(value[9]);
end;
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TForm3.Timer1Timer(Sender: TObject);
begin
StartTrend;
sleep(100);
end;
procedure TForm3.FormCreate(Sender: TObject);
var d,t:TDateTime;
fmin,fmax:single;
prom:byte;
Hx,Hy:real;
Hour, Min, Sec, MSec: Word;
begin
with chart1 do
begin
Hx:=StrToTime(Ed_razmX.Text);
Hy:=StrToFloat(Ed_razmY.Text);
fmin:=StrToFloat(me_MinFz.Text);
fmax:=StrToFloat(me_MaxFz.Text);
prom:=StrToInt(Ed_promVrem.Text);
LeftAxis.Automatic:=false;
BottomAxis.Automatic:=False;
BottomAxis.Increment:=Hx; <===========================тут
LeftAxis.Increment:=Hy;
LeftAxis.maximum:=fmax;
LeftAxis.minimum:=fmin;
LongTimeFormat:='HH:MM:SS.ZZ';
d:=Time;
DecodeTime( D, Hour, Min, Sec, MSec);
Min:=prom;
T:= EncodeTime(Hour, Min, Sec, MSec);
Chart1.BottomAxis.SetMinMax(d,t);
end;
end;
procedure TForm3.CheckBox1Click(Sender: TObject);
begin
with Chart1 do begin BottomAxis.Grid.Visible:=False;
BottomAxis.Grid.Visible:=CheckBox1.Checked;
end;
end;
procedure TForm3.CheckBox2Click(Sender: TObject);
begin
with Chart1 do begin LeftAxis.Grid.Visible:=False;
LeftAxis.Grid.Visible:=CheckBox2.Checked;
end;
end;
end.