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

u7up0aaq  于 2024-01-07  发布在  其他
关注(0)|答案(1)|浏览(277)

我做了一个测试vcl应用程序用于测试目的,因为我试图保存一个tchart系列(这样当我关闭应用程序并再次打开它时,我添加的值将保留在那里,而不是重置为空。)
LoadChartFromFile和SaveChartToFile成功了,但是当一个问题解决了,另一个问题又出现了(像往常一样!)
在LoadChartFromFile发生后,我在关闭和重新打开应用程序之前添加的所有值仍然存在,但现在我不能再向其添加任何值。每次我尝试时,它都会给出访问冲突错误。
这里是这个表单中的基本所有代码。这里真的没有太多。

  1. unit Unit7;
  2. interface
  3. uses
  4. Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  5. Vcl.Controls, Vcl.Forms, Vcl.Dialogs, VclTee.TeeGDIPlus, VCLTee.TeEngine,
  6. VCLTee.Series, Vcl.ExtCtrls, VCLTee.TeeProcs, VCLTee.Chart, VCLTee.TeeStore, VCLTee.TeeEdiSeri,
  7. Vcl.StdCtrls;
  8. type
  9. TForm7 = class(TForm)
  10. Chart1: TChart;
  11. Series1: TBarSeries;
  12. Button1: TButton;
  13. Button2: TButton;
  14. Button3: TButton;
  15. Button4: TButton;
  16. Button5: TButton;
  17. procedure Button1Click(Sender: TObject);
  18. procedure Button2Click(Sender: TObject);
  19. procedure Button3Click(Sender: TObject);
  20. procedure Button4Click(Sender: TObject);
  21. procedure Button5Click(Sender: TObject);
  22. procedure FormDestroy(Sender: TObject);
  23. procedure FormCreate(Sender: TObject);
  24. private
  25. { Private declarations }
  26. public
  27. { Public declarations }
  28. end;
  29. var
  30. Form7: TForm7;
  31. implementation
  32. {$R *.dfm}
  33. procedure TForm7.Button1Click(Sender: TObject);
  34. begin
  35. With Series1 do
  36. begin
  37. Add (40);
  38. end;
  39. end;
  40. procedure TForm7.Button2Click(Sender: TObject);
  41. begin
  42. With Series1 do
  43. begin
  44. Add (90);
  45. end;
  46. end;
  47. procedure TForm7.Button3Click(Sender: TObject);
  48. begin
  49. With Series1 do
  50. begin
  51. Add (10);
  52. end;
  53. end;
  54. procedure TForm7.Button4Click(Sender: TObject);
  55. begin
  56. With Series1 do
  57. begin
  58. Add (50);
  59. end;
  60. end;
  61. procedure TForm7.Button5Click(Sender: TObject);
  62. begin
  63. With Series1 do
  64. begin
  65. Add (140);
  66. end;
  67. end;
  68. procedure TForm7.FormCreate(Sender: TObject);
  69. begin
  70. LoadChartFromFile(TCustomChart(Chart1), 'File1');
  71. end;
  72. procedure TForm7.FormDestroy(Sender: TObject);
  73. begin
  74. SaveChartToFile(Chart1,'File1',True);
  75. end;
  76. end.

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

mxg2im7a

mxg2im7a1#

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

相关问题