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 オブジェクト モデルについての理解が不足していることを示唆しています。不足している知識を補うために、言語ガイドの関連セクションを参照してください。

また、ディメンション パラメータには別の名前を使用することをお勧めします。これらのパラメーターを使用して対応する形状のプロパティを設定することをコードの将来の読者に明確にするために、AWidthandを使用する必要があります。AHeight

于 2013-01-25T08:56:39.923 に答える