TLine已经搞定, 就是这两天上不来, 无法贴上来. 我把他放到我校的FTP上了, 自己
去取吧, <a hreh="ftp://ftp.hrbucea.edu.cn/incoming/delphi/tline.zip">TLine.zip</a>.
关于TLine:
1. 完全由坐标控制, 改变坐标后自动改变BoundsRect, 相关属性:
published:
StartX, StartY -- 起点XY
EndX, EndY -- 终点XY
public:
StartP, EndP -- 起点, 终点
MidP -- 中分点(只读)
2. 几何属性:
angle -- 角度(顺时针为正), 改变角度后长度不变终点改变
Distance -- 长度, 改变长度角度不变终点改变
Corner -- 所在象限(只读) 3 | 4
---+---
2 | 1
weight -- 线宽
3. 带箭头, 相关属性:
Arrow -- 可以设置成 laNone, laStart, laEnd, laBoth
ArrowWidth -- 箭头宽度, 是线宽的倍数
ArrowLength -- 箭头长度, 是半个箭头宽度倍数
GrabHandle在Delphi by Delphi中的TProxyForm中有源码
直线的拾取问题正在做, 目标是: 鼠标击在线上才做对Click反应, 否则发出MouseMessage
给它的Parent, 使鼠标有穿透能力