【发布时间】:2019-03-17 03:07:00
【问题描述】:
我在 RAD Studio 10.2 中使用 C++ Builder。我不确定我是否在标题中正确地问了这个问题,但我想说的是,每当我使用 C++ 关键字“this”时,它都会引用我试图访问的组件的父级,但是而不是组件本身。
例如,下面的代码改变了Form的颜色和字体颜色,而不是Panel的颜色和字体颜色:
void __fastcall TForm1::Panel1MouseEnter(TObject *Sender)
{
this->Color = cl3DLight;
this->Font->Color = clMaroon;
}
此外,如果我执行与上述相同的操作但省略关键字“this”,它仍会更改表单的属性而不是面板的属性(参见下面的代码)。
void __fastcall TForm1::Panel1MouseEnter(TObject *Sender)
{
Color = cl3DLight;
Font->Color = clMaroon;
}
我该如何编写代码以便它访问面板的“颜色”和“字体->颜色”而不是表单?谢谢。
注意:我之所以不这样做是因为:Panel1->Color = "cl3DLight"; 是因为我试图为运行时创建的组件找到一种方法。 p>
【问题讨论】:
-
您的表单有面板吗?如果是,声明是什么(实例名称是什么)?
-
是的。
TPanel *Panel1;是声明,“Panel1”是组件的名称。 -
你试过了吗:
Panel1->Color = /*...*/;? -
是的,抱歉,我一定没有在原帖中澄清这一点。我正在尝试为在运行时创建的组件找到一种方法,因此我不能使用组件的实例名称。
标签: c++builder vcl