一个搞不明白的问题,在线

amartapple 2002-11-16 12:04:32
我做了一个多窗体程序,程序执行时不自动产生ChildForm,当执行新建时动态生成一个ChildForm。
代码如下:
ChildForm=new TChildForm(Application);

在程序中还存在一个浮动面板(ToolForm),用浮动面板中的选项来改变ChildForm中Image的Pen属性,
代码如下:
#include <vcl.h>
#pragma hdrstop


#include "ChildForm.h"


void __fastcall TToolForm::EraserButtonClick(TObject *Sender)
{
ChildForm->Image->Canvas->Pen->Color=ToolForm->CColorGrid->BackgroundColor;
}
可是每当EraserButtonClick事件发生,程序就崩溃,我想是我的消息传递出了问题,请问怎么在这两个窗体中传递消息,或者通过主窗体MainForm传递
...全文
55 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanque 2002-11-18
  • 打赏
  • 举报
回复
你是不是将ChildForm定义为全局变量?如果是,则内存泄漏,因为你可能不只一次用new
因为子窗口会产生多个,建议用一个全局窗口数组,如用TList *frmList;
在EraserButtonClick里要判断这上子窗口存不存在:
if (childForm != NULL)
{

}

bluebird97073 2002-11-17
  • 打赏
  • 举报
回复
检查EraserButtonClick(TObject *Sender)时ChildForm有没有创建

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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