从函数修改 TEdit 对象属性
modify TEdit object properties from function
我有一个 C++ Builder 项目 (VCL),并且在窗体上有一个 TEdit 按钮 (Edit1)。我希望能够从我正在构建的函数中设置 TEdit 按钮的文本 属性。我如何从功能中做到这一点?
void __fastcall MyFunction(int myNum )
{
ShowMessage(String(myNum));
//Edit1->Text = "Howdy"; // this is the line of code that won't work
return;
}
下面是我的表单上调用上述函数的按钮。
void __fastcall TTabbedForm::Button1Click(TObject *Sender)
{
MyFunction(55); // just throw integer 55 for a test
}
谢谢,
拉斯
MyFunction
不是 TTabbedForm
class 的成员,因此它不能直接访问 Edit1
对象。您将必须:
使MyFunction
使用Form的全局指针到达Edit1
对象(指针在Form的.hpp
文件中声明),提供Form对象在运行时自动创建,或者如果您手动实例化 Form 对象,至少分配给全局指针:
void __fastcall MyFunction(int myNum )
{
ShowMessage(myNum);
TabbedForm->Edit1->Text = "Howdy";
}
使Button1Click()
将Edit1
对象指针传递给MyFunction()
:
void __fastcall MyFunction(int myNum, TEdit *TheEdit)
{
ShowMessage(myNum);
TheEdit->Text = "Howdy";
}
void __fastcall TTabbedForm::Button1Click(TObject *Sender)
{
MyFunction(55, Edit1);
}
使 MyFunction()
成为表单 class 的成员,然后它可以直接访问 Edit1
对象(通过隐式 this
指针):
class TTabbedForm : public TForm
{
private:
...
void __fastcall MyFunction(int myNum); // <-- add this
...
};
void __fastcall TTabbedForm::MyFunction(int myNum )
{
ShowMessage(myNum);
/*this->*/Edit1->Text = "Howdy";
}
我有一个 C++ Builder 项目 (VCL),并且在窗体上有一个 TEdit 按钮 (Edit1)。我希望能够从我正在构建的函数中设置 TEdit 按钮的文本 属性。我如何从功能中做到这一点?
void __fastcall MyFunction(int myNum )
{
ShowMessage(String(myNum));
//Edit1->Text = "Howdy"; // this is the line of code that won't work
return;
}
下面是我的表单上调用上述函数的按钮。
void __fastcall TTabbedForm::Button1Click(TObject *Sender)
{
MyFunction(55); // just throw integer 55 for a test
}
谢谢, 拉斯
MyFunction
不是 TTabbedForm
class 的成员,因此它不能直接访问 Edit1
对象。您将必须:
使
MyFunction
使用Form的全局指针到达Edit1
对象(指针在Form的.hpp
文件中声明),提供Form对象在运行时自动创建,或者如果您手动实例化 Form 对象,至少分配给全局指针:void __fastcall MyFunction(int myNum ) { ShowMessage(myNum); TabbedForm->Edit1->Text = "Howdy"; }
使
Button1Click()
将Edit1
对象指针传递给MyFunction()
:void __fastcall MyFunction(int myNum, TEdit *TheEdit) { ShowMessage(myNum); TheEdit->Text = "Howdy"; } void __fastcall TTabbedForm::Button1Click(TObject *Sender) { MyFunction(55, Edit1); }
使
MyFunction()
成为表单 class 的成员,然后它可以直接访问Edit1
对象(通过隐式this
指针):class TTabbedForm : public TForm { private: ... void __fastcall MyFunction(int myNum); // <-- add this ... };
void __fastcall TTabbedForm::MyFunction(int myNum ) { ShowMessage(myNum); /*this->*/Edit1->Text = "Howdy"; }