一个使用TCustomControl做控件的问题(100分)

  • 主题发起人 主题发起人 元素88
  • 开始时间 开始时间

元素88

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用TCustomControl作为基类写了一个小控件,编译成功,也能放在组件板上,但当我点击这个小控件试图把它放在Form上时出现报错“control '' has no parent window”。那位大侠能帮忙解决这个问题!!!(200分)
 
估计你的构造函数有问题。
例子:
constructor TCustomControl1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Width := 80;
Height := 50;
end;
destructor TCustomControl1.Destroy ;
begin
inherited;
end;

要不你把你的这部分代码贴上来看看
 
你说对了,如何解决呢?
 
把你的代码贴上来看看。
 
Constructor TMovGraph.Create(AOwner:TComponent);
Begin
Inherited Create(AOwner);
ControlStyle:=[csOpaque];
Width:=200; Height:=100;
OnMouseDown:=MyOnMouseDown;
OnMouseMove:=MyOnMouseMove;
OnMouseUp:=MyOnMouseUp;
FGridBMP:=TBitmap.Create;
FAuxBMP:=TBitmap.Create;
FValuesBMP:=TBitmap.Create;
FValues2BMP:=TBitmap.Create;
FGridBMP.Canvas.Font.Color:=clBlack;
FAuxBMP.Canvas.Font.Color:=clBlack;
FValuesBMP.Canvas.Font.Color:=clBlack;
FValues2BMP.Canvas.Font.Color:=clBlack;
FBackgroundColor:=clWhite;
FGridColor:=clSilver;
FAxieColor:=clRed;
FLineColor:=clBlack;
FFontColor:=clBlack;
FLineWidth:=1;
FMaxValue:=100;
FNegative:=False;
FValue:=0;
FOldValue:=0;
FOldValueIniFlag:=False;
FInterval:=2;
End;
 
上面的构造函数没问题。
要不你把所有的代码贴上,我帮你测试一下。
 
晚了,该休息了。
如果你觉得有必要,把你的代码发到我的信箱里,我帮你测试一下。
 
没发现什么问题
 
邮件已经收到,好像不仅仅是这个问题,你的画框选区域也有问题。
不过你的代码风格还是不错的。
 
问题找出来了!
你的函数RePaintGridBMP、RePaintValuesBMP中使用了Self,你的Clear函数调用了RePaintValuesBMP函数。

关键问题是,你在构建函数中调用了它们,把这三句取掉就行了。

 
yostgxf:
  谢谢!我把它们放到CreateWnd函数里,一切OK。
 
后退
顶部