delphi 在LoadChartFromFile后向TChart添加值时出现访问冲突错误

u7up0aaq  于 9个月前  发布在  其他
关注(0)|答案(1)|浏览(136)

我做了一个测试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.

字符串
我已经在这个表单上创建了一个文件夹,所以我删除了它,看看它是否会做一些事情,但没有任何差异。图表正常保存和加载,加载后我不能添加任何更多的值。正如你可能也在代码中看到的,我使用按钮向图表添加值,所以每个按钮添加不同的值。这些按钮工作,但在关闭(保存图表值)并重新打开应用程序(加载图表值)后,它们会给出给予访问违规错误。
我所期望的:能够不断向图表中添加值,并保存它们,以便一旦关闭并重新打开窗体,它们仍然在那里。
感谢您的任何建议或帮助!

mxg2im7a

mxg2im7a1#

一旦加载/创建了新的图表或系列,Form 7对象中的Series 1引用将失效。通过图表对象而不是表单对象引用系列。
TBarSeries(Chart1.Series[0]).Add(125); ;

相关问题