读书人

Tgraphic的paint方法太不好用了!该如

发布时间: 2012-02-28 13:06:36 作者: rapoo

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、实在不喜欢,自己写一个坐标系转换的函数,应该会吧?

读书人网 >.NET

热点推荐