Tgraphic的paint方法太不好用了!
控件开发初学者,我试着让canvas以原点(因为属性只有left、top,故所谓原点其实就是控件左上角)为中心画一个正方形,边长为100.这是控件的pas:
- Delphi(Pascal) code
unit brick;interfaceuses SysUtils, Classes, Controls;type Tbrick = class(TGraphicControl) private { Private declarations } protected procedure Paint; override; public { Public declarations } published { Published declarations } end;procedure Register;implementationprocedure Tbrick.Paint;begin Canvas.Rectangle(-50,-50,50,50);end;procedure Register;begin RegisterComponents('Samples', [Tbrick]);end;end.截图是这个样子的:
也就是说,控件外围的区域根本画不到。但若妥协,比如把矩形坐标改为(0,0,100,100),canvas允许,但这会给编程带来许多不便。
难道就没有办法了吗?
[解决办法]
这个都是要编码控制的,你最好选择一个本身有画板的基类。比如picturebox
[解决办法]
1、这是计算机的规则,左上角为原点,右和下为正方向
2、实在不喜欢,自己写一个坐标系转换的函数,应该会吧?