【菜鸟送100分】如何在鼠标悬停时显示series的值? 如何实现鼠标放在柱状图上面的时候,显示该柱子的value值(不是XY轴的坐标),因为柱子多的时候,固定显示的value值会出现重叠的情况,看不见被盖住的值 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般画这种图,都是以序号作为x轴的坐标,y轴显示柱状的高度,也就是value值。如果你这样设定后,就可以用series1.yvalues[i]的方式来表示第几个柱条的value值,这个值是个double型的值,如果要用整形的,就自己转换一下round(series1.yvalues[i]) 我的意思是:鼠标放到柱子上的时候,就像按钮的hint那样提示这个柱子的value值。 可以自己把值画上去,但是视觉效果不太好,参考下面的方法:先在Chart里添加一个ChartTool, 双击Chart - Tools - Add - Cursor之后在ChartTool的OnSnapChange事件里写代码:procedure TForm1.ChartTool1SnapChange(Sender: TCursorTool; x, y: Integer; const XValue, YValue: Double; Series: TChartSeries; ValueIndex: Integer);begin Chart1.Repaint; Chart1.Canvas.Brush.Color := clWhite; Chart1.Canvas.Font.Color := clBlack; Chart1.Canvas.Font.Size := 11; Chart1.Canvas.TextOut(x, y - 30, FloatToStr(YValue));end;procedure TForm1.FormCreate(Sender: TObject);var i: Integer;begin Series1.Marks.Visible := False; ChartTool1.Series := Series1; ChartTool1.Snap := True; ChartTool1.SnapStyle := ssHorizontal; ChartTool1.Active := True; ChartTool1.FollowMouse := True; Randomize; for i := 0 to 10 do Series1.AddXY(i, Random(500) + 500);end; procedure ChartZiLiaoClickSeries(Sender: TCustomChart; Series: TChartSeries; ValueIndex: Integer; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);beginend;参考这个函数利用x y可以获取相关信息转换到series 然后有了ValueIndex就能知道数据 你好,這個問題我也遇到過,但我的做法是使用dbchart內的tools顯示該柱狀圖x軸的字,因為柱狀圖太多,會導致文字無法完全顯示,謝謝。請愛用dbchart內附的tools功能。 柱子是什么?chart吗?如果是可以使用MouseMove记录要显示的内容,再配合Hint显示出来 DELPHI中图表中的属性应该也可以配合hint和showhint来使用的吧。 谁知道用delphi的datetimetostringp得到的值用c#的什么函数可以实现? 为什么TADOCommand总是提示" update()语法错误!" 对象模型,还是一团浆糊,求大牛指点 如何向一个没有窗体的程序发消息?? 用DELPHI2005开发ASP.NET程序出现的错误 关于dbexpress控间连接数据库的问题 CSDN的基本问题 如何用背景图片填充TRichEdit??????在线等待 请进屋子里指点 高手请进:TDBGrid中如何对记录按列进行排序? ADOTable添加的问题 Invalid class typecast 错误
先在Chart里添加一个ChartTool, 双击Chart - Tools - Add - Cursor
之后在ChartTool的OnSnapChange事件里写代码:
procedure TForm1.ChartTool1SnapChange(Sender: TCursorTool; x, y: Integer;
const XValue, YValue: Double; Series: TChartSeries; ValueIndex: Integer);
begin
Chart1.Repaint;
Chart1.Canvas.Brush.Color := clWhite;
Chart1.Canvas.Font.Color := clBlack;
Chart1.Canvas.Font.Size := 11;
Chart1.Canvas.TextOut(x, y - 30, FloatToStr(YValue));
end;procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
Series1.Marks.Visible := False;
ChartTool1.Series := Series1;
ChartTool1.Snap := True;
ChartTool1.SnapStyle := ssHorizontal;
ChartTool1.Active := True;
ChartTool1.FollowMouse := True;
Randomize;
for i := 0 to 10 do
Series1.AddXY(i, Random(500) + 500);
end;
Series: TChartSeries; ValueIndex: Integer; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
beginend;
参考这个函数利用x y可以获取相关信息转换到series 然后有了ValueIndex就能知道数据
請愛用dbchart內附的tools功能。