将自己写的组件放在Form上时候,总会报错!:(

wu_07 2003-03-06 11:22:28
这是我写的组件的构造函数
//----------------------------------------------------------
__fastcall TImFormTitleSkin::TImFormTitleSkin(TComponent* Owner)
: TComponent(Owner)
{
ParentForm =dynamic_cast<TForm *>(this->Owner);
if (ParentForm!=NULL)
{

TBorderIcons tempBI = ParentForm->BorderIcons;
tempBI >> biSystemMenu;
ParentForm->BorderIcons = tempBI;

// subclass the window
NewClientWP = (FARPROC)MakeObjectInstance(CustomWndProc);
OldClientWP = (FARPROC)SetWindowLong(ParentForm->Handle, GWL_WNDPROC,(LONG)NewClientWP);

tempBMP= new Graphics::TBitmap();
tempBMP->Height = 28;
tempBMP->Width = 1024;
tempCanvas= tempBMP->Canvas;


BMP= new Graphics::TBitmap();
BMP->LoadFromResourceName((int)HInstance, "RESOURCE_Blue");
}
else if(ComponentState.Contains(csDesigning))
{
Application->MessageBox("This should be on window.", "Look", MB_OK);
delete this;
}
else
{
delete this;
}

每当我将此组件放在Form上时候,总会报下边的错

Access violation at address 05E1EA6 in module 'ImPackage.bpl'.
Read of address 00000000.

初次写组件,请大家帮忙分析分析原因:

...全文
85 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
SharpKing515 2003-03-06
  • 打赏
  • 举报
回复
如果指定了组件的Parent,那么销毁工作就由该组件的拥有者来做。否则出现AV错误!
wu_07 2003-03-06
  • 打赏
  • 举报
回复
组件不能销毁自己么!?
Taiji02 2003-03-06
  • 打赏
  • 举报
回复
delete this;

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧