在一张静态图中如何显示点的动态信息(C#+Delphi)
在业务上由于需要对一张静态图中的某个元素进入分析,比如想知道某个点的坐标值(移动鼠标到该点上能够显示相关值),以及其背后的相关数据来源(在该点上单击鼠标,可以打开新窗口,显示更多的相关数据)。于是考虑在生成这张固定大小图的同时,把相应的点信息的绝对坐标值也一并记录下来,再利用html中的map功能,就可以实现在一张静态图中显示点的动态信息。
分为三步实现:1 生成图中点的绝对坐标值(Delphi中完成),2 生成图片,关联坐标值及点的单击事件(Delphi中完成),3 响应点的单击事件(C#)
1 生成图中点的绝对坐标值(Delphi中完成)
得到TChart图片上热点的绝对坐标值,关键代码如下:
procedure TSVGExportForm.Button22Click(Sender: TObject);
var
temps1: string ;
i,x,y: integer ;
begin
temps1 : = ' <img id="aaa" src="test.bmp" usemap="#map1" > ' ;
temps1: = temps1 + ' <map name="map1">';
for i: = 0 to chart1.Series[ 0 ].Count - 1 do
begin
x: = chart1.Series[ 0 ].CalcXPos(i);
y: = chart1.Series[ 0 ].CalcYPos(i);
temp
var
temps1: string ;
i,x,y: integer ;
begin
temps1 : = ' <img id="aaa" src="test.bmp" usemap="#map1" > ' ;
temps1: = temps1 + ' <map name="map1">';
for i: = 0 to chart1.Series[ 0 ].Count - 1 do
begin
x: = chart1.Series[ 0 ].CalcXPos(i);
y: = chart1.Series[ 0 ].CalcYPos(i);
temp