我有一个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
}
谢谢你,
拉斯
答案 0 :(得分:1)
TTabbedForm
不是Edit1
类的成员,因此它无法直接访问MyFunction
对象。你必须要么:
make Edit1
使用Form的全局指针到达.hpp
对象(指针在Form的void __fastcall MyFunction(int myNum )
{
ShowMessage(myNum);
TabbedForm->Edit1->Text = "Howdy";
}
文件中声明),前提是Form对象是自动创建的在运行时,或者至少在手动实例化Form对象时分配给全局指针:
Button1Click()
将Edit1
对象指针传递给MyFunction()
:
void __fastcall MyFunction(int myNum, TEdit *TheEdit)
{
ShowMessage(myNum);
TheEdit->Text = "Howdy";
}
void __fastcall TTabbedForm::Button1Click(TObject *Sender)
{
MyFunction(55, Edit1);
}
make MyFunction()
是Form类的成员,然后它可以直接访问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";
}