Delphi 创建新类型

Delphi 创建新类型,delphi,delphi-xe2,Delphi,Delphi Xe2,在delphi中,我想创建一个复制TShape的新类型(机器)。主要是因为想要添加更多的过程和函数。例如,我可以做这样的事情 Machine.type('402') Machine.before('Microclean'); 它将绘制形状,但具有定义的高度/宽度。 像这样 Machine.type('402') Machine.before('Microclean'); 它会知道把形状放在哪里 所以……两部分的问题。 1.让一种新的类型听起来像我需要的吗? 2.如何创建一个新的空白类

在delphi中,我想创建一个复制TShape的新类型(机器)。主要是因为想要添加更多的过程和函数。例如,我可以做这样的事情

Machine.type('402') 
Machine.before('Microclean');
它将绘制形状,但具有定义的高度/宽度。 像这样

Machine.type('402') 
Machine.before('Microclean');
它会知道把形状放在哪里

所以……两部分的问题。
1.让一种新的类型听起来像我需要的吗? 2.如何创建一个新的空白类型,从而将其作为自己的单元,并向其中添加新的过程

谢谢
Glen

听起来您需要一个从TShape继承的新类:

TMachine = class(TShape)
public
  procedure MyType(const AType: string);
  procedure Before(const ABfore: string);
end;
然后可以为这两个过程提供代码


请注意,您不能将type用作过程名称-这是一个保留字。另外,用“T”作为类名前缀是Delphi约定(但不是要求)

听起来您需要一个从TShape继承的新类:

TMachine = class(TShape)
public
  procedure MyType(const AType: string);
  procedure Before(const ABfore: string);
end;
然后可以为这两个过程提供代码


请注意,您不能将type用作过程名称-这是一个保留字。另外,在类名前面加上'T'

@bummi是一种Delphi约定(但不是要求),为什么不呢?如果你愿意的话,制作那些程序属性设置器。你原来的问题也没有显示属性。属性应用作
Machine.MyType:=402Machine.MyType:=402Machine.type('402')
,而不是
Machine.type(402)
?为什么是字符串而不是数字?如果有人调用
Machine.type('Zebra')
?这是一个例子,但是402是数据库中机器的名称为什么
Machine.type('402')
,而不是
Machine.type(402)
?为什么是字符串而不是数字?如果有人调用
Machine.type('Zebra')
,该怎么办?这是一个示例,但402是数据库中机器的名称