我做了一个测试vcl应用程序用于测试目的,因为我试图保存一个tchart系列(这样当我关闭应用程序并再次打开它时,我添加的值将保留在那里,而不是重置为空。)
LoadChartFromFile和SaveChartToFile成功了,但是当一个问题解决了,另一个问题又出现了(像往常一样!)
在LoadChartFromFile发生后,我在关闭和重新打开应用程序之前添加的所有值仍然存在,但现在我不能再向其添加任何值。每次我尝试时,它都会给出访问冲突错误。
这里是这个表单中的基本所有代码。这里真的没有太多。
unit Unit7;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, VclTee.TeeGDIPlus, VCLTee.TeEngine,
VCLTee.Series, Vcl.ExtCtrls, VCLTee.TeeProcs, VCLTee.Chart, VCLTee.TeeStore, VCLTee.TeeEdiSeri,
Vcl.StdCtrls;
type
TForm7 = class(TForm)
Chart1: TChart;
Series1: TBarSeries;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
{$R *.dfm}
procedure TForm7.Button1Click(Sender: TObject);
begin
With Series1 do
begin
Add (40);
end;
end;
procedure TForm7.Button2Click(Sender: TObject);
begin
With Series1 do
begin
Add (90);
end;
end;
procedure TForm7.Button3Click(Sender: TObject);
begin
With Series1 do
begin
Add (10);
end;
end;
procedure TForm7.Button4Click(Sender: TObject);
begin
With Series1 do
begin
Add (50);
end;
end;
procedure TForm7.Button5Click(Sender: TObject);
begin
With Series1 do
begin
Add (140);
end;
end;
procedure TForm7.FormCreate(Sender: TObject);
begin
LoadChartFromFile(TCustomChart(Chart1), 'File1');
end;
procedure TForm7.FormDestroy(Sender: TObject);
begin
SaveChartToFile(Chart1,'File1',True);
end;
end.
字符串
我已经在这个表单上创建了一个文件夹,所以我删除了它,看看它是否会做一些事情,但没有任何差异。图表正常保存和加载,加载后我不能添加任何更多的值。正如你可能也在代码中看到的,我使用按钮向图表添加值,所以每个按钮添加不同的值。这些按钮工作,但在关闭(保存图表值)并重新打开应用程序(加载图表值)后,它们会给出给予访问违规错误。
我所期望的:能够不断向图表中添加值,并保存它们,以便一旦关闭并重新打开窗体,它们仍然在那里。
感谢您的任何建议或帮助!
1条答案
按热度按时间mxg2im7a1#
一旦加载/创建了新的图表或系列,Form 7对象中的Series 1引用将失效。通过图表对象而不是表单对象引用系列。
TBarSeries(Chart1.Series[0]).Add(125);
;