プログラムでバーシリーズを作成しています(Delphi2007、TeeChar 7無料版)。グラフに棒を隣接させたいので、複数の棒系列を作成し、multibar プロパティを使用しようとしています。
main_unit で multibar プロパティを設定すると、アクセス違反が発生します (デバッグ時に barseries オブジェクトを調べると、multibar プロパティが「範囲外」であることがわかります)。バーシリーズが作成されたユニットにプロパティを設定した場合にのみ、エラーは発生しません。バーシリーズを外部から操作するにはどうすればよいですか? unit1 でこの目的のためにプロパティを設定する必要がありますか?
ここに私のコードのスニペットがあります:
unit unit1
type TMyChart = Class
fchart: TChart;
procedure addSinglebarSeries(var X, Y: integer)
....
implementation
function TSignalchart.addSinglebarSeries(var X, Y: integer): TBarSeries;
j, n : integer;
begin
result := TBarSeries.Create(fChart);
result.AddXY(x,Y,inttostr(x), clRed);
barseries.MultiBar := mbStacked; //here no access violation
end;
----
unit main-unit
implementation
uses TeEngine, TeeProcs, unit1;
procedure myprocedure;
var
newChart : TMyChart;
X, Y := array of integer;
barseries : TBarSeries;
aX, aY, i: integer;
begin
//I create the newchart object, I create X, Y
for i := 0 to length(X) - 1 do
begin
aX := X[i];
aY := Y[i];
barseries := newChart.addsinglebarSeries(aX,aY);
end;
//barseries.MultiBar := mbStacked; //access violation!!
end;