0

我已经像这样创建了一个新单元,它应该是一个自定义的 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 但它不起作用?谢谢格伦

4

1 回答 1

2

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

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

你声明了一个函数

Procedure PlaceShape(...);

那不是类的方法。

这个问题表明您缺少对 Delphi 对象模型的一些理解。我建议您参考语言指南的相关部分来填写缺失的知识。

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

于 2013-01-25T08:56:39.923 回答