+ -
当前位置:首页 → 问答吧 → Tgraphic的paint方法太不好用了!

Tgraphic的paint方法太不好用了!

时间:2011-12-13

来源:互联网

控件开发初学者,我试着让canvas以原点(因为属性只有left、top,故所谓原点其实就是控件左上角)为中心画一个正方形,边长为100.这是控件的pas:

Delphi(Pascal) code


unit brick;

interface

uses
  SysUtils, Classes, Controls;

type
  Tbrick = class(TGraphicControl)
  private
    { Private declarations }
  protected
    procedure Paint; override;
  public
    { Public declarations }
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Tbrick.Paint;
begin
  Canvas.Rectangle(-50,-50,50,50);
end;

procedure Register;
begin
  RegisterComponents('Samples', [Tbrick]);
end;

end.





截图是这个样子的:



也就是说,控件外围的区域根本画不到。但若妥协,比如把矩形坐标改为(0,0,100,100),canvas允许,但这会给编程带来许多不便。

难道就没有办法了吗?

作者: yangtianyu2004   发布时间: 2011-12-13

这个都是要编码控制的,你最好选择一个本身有画板的基类。比如picturebox

作者: jubobo   发布时间: 2011-12-13

不明所以

作者: funxu   发布时间: 2011-12-13

计算机的坐标本来就这么定的啊。左上角开始。

作者: chhrsas   发布时间: 2011-12-13