我在c++ builder中设计了两种形式:

  • TfrmMain
  • TfrmChooseName

  • 在 TfrmMain 类中,我有一个名为 btnNext 的按钮。单击 btnNext 时,下面的代码将运行并创建新的 TfrmChooseName。

    frmChooseName = new TfrmChooseName(this);
    this->Hide();
    frmChooseName->ShowModal();
    this->Show();
    delete frmChooseName;
    frmChooseName = NULL;
    

    同样在 TfrmMain 中,我有名为 txtInput 的 TEdit 控件。
    在 TfrmChooseName 的 costructor 中,我想获取 txtInput 的文本并将其设置为表单的标题,但发生访问 volation 错误!
    我也把这两个类(class)都当成了 friend !

    最佳答案

    处理此问题的最佳方法是将所需的 Caption 值传递给构造函数本身,而不是对其进行编码以寻找该值,例如:

    __fastcall TfrmChooseName(TComponent *Owner, const String &ACaption)
        : TForm(Owner)
    {
        Caption = ACaption;
    }
    

    .
    frmChooseName = new TfrmChooseName(this, txtInput->Text);
    

    或者,您可以在构造函数退出后设置 Caption,例如:
    frmChooseName = new TfrmChooseName(this);
    frmChooseName->Caption = txtInput->Text;
    

    关于c++builder - 在borland c++ builder中的表单之间传输数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14017678/

    10-10 03:26