【问题标题】:TChart find valueindex with mousemove over bottom axis labelTChart在底部轴标签上用鼠标移动找到valueindex
【发布时间】:2015-03-17 17:34:49
【问题描述】:

Delphi 7 和 TChart 版本 2014Delphi7

我有一个包含 16 个条形系列和 16 个值的 3d TChart。 (16x16 3d 条形图)

当我将鼠标移到底部轴上时,我需要知道鼠标所在系列的 valueindex。

我想隐藏(透明度=75)所有其他值,以便只显示该索引的条形。 (仅显示如此显示的所有系列的索引实际上是 1x16 图表)

如何获取鼠标所在的索引?

【问题讨论】:

  • This post 应该是你要找的,我想。不确定您的问题是否重复。
  • @TLama,答案就在那里,但问题有点不同。
  • 谢谢你,这给了我想要的东西。 @TLama,如果您将其发布为答案,我将给予您功劳。
  • 谢谢,但这对 Yeray 不公平。我已经要求他重新发布。

标签: delphi charts teechart


【解决方案1】:

如果系列不在 (X,Y) 位置(以像素为单位)之下,系列的 Clicked(X,Y) 函数将返回 -1。如果系列在 (X,Y) 位置(以像素为单位)下,则返回系列下点的索引。

这里有一个使用 OnMouseMove 事件的简单示例:

uses Series;

procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
  Chart1.View3D:=false;

  for i:=0 to 2 do
    Chart1.AddSeries(TBarSeries).FillSampleValues(3);
end;

procedure TForm1.Chart1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var seriesIndex, valueIndex: Integer;
begin
  Caption:='No series under the mouse';

  for seriesIndex:=Chart1.SeriesCount-1 downto 0 do
  begin
    valueIndex:=Chart1[seriesIndex].Clicked(X,Y);
    if valueIndex>-1 then
      Caption:='Series under the mouse. SeriesIndex: ' + IntToStr(seriesIndex) + ', ValueIndex: ' + IntToStr(valueIndex);
  end;
end;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    • 2013-11-15
    相关资源
    最近更新 更多