关于TBrush和TPen的怪问题?

zygtp 2002-05-30 04:48:40
我在编写组件时用到TBrush和TPen,用法是这样的:
class PACKAGE TSpeedButton1 : public TScrollingWinControl
{
private:
TPen *FPen ;
TBrush *FBrush;
void __fastcall SetPen(TPen *Value);
void __fastcall SetBrush(TBrush *Value);
protected:
public:
__fastcall TSpeedButton1(TComponent* Owner);
__fastcall ~TSpeedButton1();
__published:
__property TPen *Pen = {read=FPen, write=SetPen};
__property TBrush *Brush = {read=FBrush, write=SetBrush};
};
__fastcall TSpeedButton1::TSpeedButton1(TComponent* Owner)
: TScrollingWinControl(Owner)
{
FPen=new TPen;
FBrush=new TBrush;
}
//---------------------------------------------------------------------------
__fastcall TSpeedButton1::~TSpeedButton1()
{
delete FPen;
delete FBrush;
}
namespace Speedbutton1
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TSpeedButton1)};
RegisterComponents("Samples", classes, 0);
}
}
//---------------------------------------------------------------------------
void __fastcall TSpeedButton1::SetPen(TPen *Value)
{
FPen->Assign(Value);
}
void __fastcall TSpeedButton1::SetBrush(TBrush *Value)
{
FBrush->Assign(Value);

}
当然我的程序不像这么简单,上面的程序也不会出错。
问题:
1。对于TBrush对象在New之前它的属性全为???我给它付NULL后还为???,New后给它的属性付值(这时并不出错)后却还为???, FPen在New时一切正常,其它地方并未对Pen和Brush付值。
2。当我对该类的Pen和Brush的属性付值时却出什么地址错误,有时Brush的为???Pen为NULL,有时正常,均会出错。
说明:
开发环境:Win2000+CB5
重新Build、重起机子、换机子均无效
请各位帮忙探讨一下问题的原因!
...全文
80 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zygtp 2002-06-03
  • 打赏
  • 举报
回复
噢,还有在Object Inspector中设置Brush和Pen属性一切正常!
zygtp 2002-06-03
  • 打赏
  • 举报
回复
当鼠标移上去时属性显示为???
mygodness 2002-05-30
  • 打赏
  • 举报
回复
属性全为???...什么意思?

13,871

社区成员

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

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