在chart上,用户点击chart的某一点,描点,最后连接点成曲线
1.获取鼠标点击的坐标
2.描点
3.连接成曲线
实现手绘生成曲线
1.获取鼠标点击的坐标
2.描点
3.连接成曲线
实现手绘生成曲线
解决方案 »
- com问题
- DBGrid的颜色问题
- 要做一个简单的IM系统,对数据库里的数据的读、写,采用什么方法比较好?
- 在表中字段类型是integer,用edit控件的时候要转换吗??!
- 各位高手:report builder做成dll 再由dll来调用,老是提示:“应用程序发生异常 未知的软件异常(0x0eedfade),位置为0x77e6a4e1”,用Qre
- DbGrid中控制输入格式的问题。
- delphi程序员月薪大调查,跟贴加分!!!!
- 小不点呀,小不点,偶刚把贴子揭了,你就……好在偶分多,没关系,
- 急,请高人指点--怎样加入系统的弹出菜单!!!
- Table使用中常报的3个错.
- dbchart做曲线图,如歌根据Y轴数值不同动态改变曲线颜色。
- delphi ocx 设置返回值类型BSTR,js调用时异常
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, Generics.Collections;type
TForm1 = class(TForm)
cht1: TChart;
fstlnsrsSeries1: TFastLineSeries;
procedure cht1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure cht1AfterDraw(Sender: TObject);
private
{ Private declarations }
FLst : TList<TPoint>; //存储坐标点
procedure PrintLine(const nStep: Integer); //划线 nStep:划线步长
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FLst.Free;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
FLst := TList<TPoint>.Create;
end;procedure TForm1.PrintLine(const nStep : Integer);
var
i : integer;
pPoint : TPoint;
begin
if nStep < 2 then
Exit;//raise Exception.Create('错误的步长值!'); if FLst.Count < nStep then
exit; cht1.Canvas.Pen.Color := clRed;
i := FLst.Count - nStep;
while i < FLst.Count - 1 do
begin
pPoint := FLst.Items[i];
cht1.Canvas.MoveTo(pPoint.X, pPoint.Y);
inc(i); pPoint := FLst.Items[i];
cht1.Canvas.LineTo(pPoint.X, pPoint.Y);
end;
end;procedure TForm1.cht1AfterDraw(Sender: TObject);
begin
PrintLine(FLst.Count);
end;procedure TForm1.cht1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
pPoint : TPoint;
begin
//按住Ctrl点击鼠标左键, 记录坐标点
if (ssCtrl in shift) and (Button = mbLeft) then
begin
pPoint.X := x;
pPoint.Y := y;
FLst.Add(pPoint); PrintLine(2);
end;
end;end.