在自定义TShape上设置宽度/高度

时间:2013-01-25 08:52:19

标签: delphi delphi-xe2

我创建了一个像这样的新单元,它应该是一个自定义的TShape。

unit MachineShape;


interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, extctrls,myDataModule,Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type

TMachine = class(TShape)
     count : Integer;
  private
    { Private declarations }
  public
    { Public declarations }
    procedure PlaceShape(sizeW,sizeH :integer; name, order,asset : string);
  end;
implementation

    Procedure PlaceShape(sizeW,sizeH :integer; name, order,asset : string);
    begin

    end;

end.

接下来我将其传递给程序

MachineShape.TMachine.PlaceShape(44,49,'CM402','first','123/33/123');

如何设置程序将形状大小设置为44宽度和49高度?

我曾尝试过TMachine.Width但它不起作用? 谢谢 格伦

1 个答案:

答案 0 :(得分:2)

您已将PlaceShape声明为实例方法,因此需要实现它:

Procedure TMachine.PlaceShape(sizeW,sizeH :integer; name, order,asset : string);
begin
  Width := sizeW;
  Height := sizeH;
  ....
end;

您宣布了一项功能

Procedure PlaceShape(...);

这不是班级的方法。

这个问题表明你缺少对Delphi对象模型的一些理解。我推荐你到relevant section of the language guide填写缺失的知识。

我还建议您为尺寸参数使用不同的名称。您应该使用AWidthAHeight,以便将来的读者可以清楚地了解这些参数将用于设置相应的形状属性。