我正在编写一个类来控制和处理设备的输入和输出。部分 I/O 将通过串行端口进行,为此我使用了 Comport 库(Tcomport,Dejan Crnila)。Tcomport 和 TcomDataPacket 组件被声明为 TComponent 后代。
然后将我自己的类声明为:
- 一个简单的类( TThingy = 类)
- 一个组件(TThingy = 类(TComponent)
如果是 1),我应该将什么传递给 TComPort.create 调用?目前我打算手动处理实例的创建和释放。
我正在编写一个类来控制和处理设备的输入和输出。部分 I/O 将通过串行端口进行,为此我使用了 Comport 库(Tcomport,Dejan Crnila)。Tcomport 和 TcomDataPacket 组件被声明为 TComponent 后代。
然后将我自己的类声明为:
如果是 1),我应该将什么传递给 TComPort.create 调用?目前我打算手动处理实例的创建和释放。
TComponent
机制处理所有权,那么从TComponent
.TObject
。创建框架Owner
时指定一个是可选的。TComponent
如果你想退出,那么只需传递nil
给 a 的构造函数TComponent
。当你这样做时,你就获得了组件的所有权,Free
当你完成它时调用它是你的工作。
所以,我怀疑你想做的是像这样声明你的类:
type
TThingy = class
private
FComport: TComport;
public
constructor Create;
destructor Destroy; override;
end;
....
constructor TThingy.Create;
begin
inherited;
FComport := TComport.Create(nil);
end;
destructor TThingy.Destroy;
begin
FComport.Free;
inherited;
end;