int* W=&(Button1->Width);*W *=2;

fangrk 2003-06-27 08:25:41
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int* W=&(Button1->Width);
ShowMessage(Button1->Width);
*W *=2;
ShowMessage(Button1->Width);
Refresh();
}

按照我的理解,每一次按下Button2,Button1的长度应该变化。对话框告诉我变化了,但视觉上没有变化。

如果把int* W=&(Button1->Width);改为int& W=Button1->Width;
*W *=2;改为W*=2;会有警告。

此外例如 Button1->Width = Button2->Width = 150;
的写法编译没法通过,这和我理解的类的设计有点出入。

恳请高手说明一下原因。
...全文
39 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chongyiren 2003-06-27
  • 打赏
  • 举报
回复
对呀,property的东西,直接赋值才有效。
fangrk 2003-06-27
  • 打赏
  • 举报
回复
的确不了解
COKING 2003-06-27
  • 打赏
  • 举报
回复
看来你并不了解VCL机制呀!
Width 是属性,可能是这样定义的:

property Width : integer read FWidth write SetWidth ;

//FWidth 与 SetWidth 可以是过程也可以是变量。。

13,825

社区成员

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

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