【问题标题】:TChart axis increment actual valueTChart 轴增量实际值
【发布时间】:2014-04-14 13:03:58
【问题描述】:

我正在使用 TChart 标准版本 8,并试图找到实际的 TChartAxis.Increment 值。来自文档:“轴增量是轴标签之间的最小步长......如果所有标签都没有足够的空间,TChart 将计算一个更大的”。 我的问题是找到适当的 MinorTickCount 值,或者更确切地说,将其与实际增量协调。因为例如,如果增量为 5,默认的 MinorTicks 值 (3) 可能看起来很奇怪(在这种情况下,有 5 个次要刻度更自然)。 谢谢。

例如,我将 Increment 设置为 1,将 MinorTickCount 设置为 0,但 TChart 将增量设置为 5。如果我知道,我会将 MinorTickCount 设置为 4。

【问题讨论】:

  • 如果你有特定的值和示例代码,这个问题会更有用。

标签: delphi teechart


【解决方案1】:

您可以使用 CalcIncrement 方法来实现,例如:

uses Series;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Chart1.Align:=alClient;
  Chart1.AddSeries(TLineSeries).FillSampleValues();

  TrackBar1.Max:=10;
  TrackBar1.Position:=2;

end;

procedure TForm1.Chart1AfterDraw(Sender: TObject);
var tmpIncr: Double;
begin
  tmpIncr:=Chart1.Axes.Bottom.CalcIncrement;
  if Chart1.Axes.Bottom.MinorTickCount<>tmpIncr-1 then
  begin
    Chart1.Axes.Bottom.MinorTickCount:=Trunc(tmpIncr-1);
    Chart1.Draw;
  end;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  Chart1.Axes.Bottom.Increment:=TrackBar1.Position;
  Label1.Caption:='Bottom Axis Increment: ' + IntToStr(TrackBar1.Position);
end;

【讨论】:

  • 谢谢,我确实手动设置了 Increment 和 MinorTickCount。但是 TChart 可以将增量更改为“更大的”。而问题是获得这个“更大”的价值。
  • 我错过了 CalcIncrement 方法,这使得它成为可能。我只是更改了上面的回复以反映这一点。如果您有兴趣,我可以发送完整的项目。
  • 再次感谢您,但似乎 CalcIncrement 在我的 TChart 版本中总是返回 1。
  • @EugeneDonin 在这种情况下,您可以尝试 v9(又名 v2014)全功能试用版:steema.com/download/vcl
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多