2

我有一个带有 Form1 和 Form2 的程序。如何从 form1 单击按钮打开 form2?

4

2 回答 2

7

再多一点信息

在你的 Project.cpp 中有这个: Application->CreateForm(__classid(TForm2), &Form2); 表示将在您启动应用程序时创建表单。

如果您想在单击按钮时创建自己的表单,请执行以下操作

TForm2 *Form = new TForm2( this );
Form->ShowModal();

例如,如果您需要使用自定义构造函数,您还可以创建一个新表单,传入您需要的任何值。例如

TForm2 *Form = new TForm2( this, "My New Form" , Now() );
Form->ShowModal();

除了设置表单的所有者之外,上述方法还传入一个字符串和一个 TDateTime,然后您可以在表单构造函数中使用它们来做一些事情。

请记住,如果您自己创建这些表格,您将需要删除它们。

要允许其他按钮或控件也可以访问您的表单,您需要执行以下操作

在标题的私有部分添加以下内容

TForm2 *Form;

现在回到 cpp,您需要先创建表单,然后才能使用它,这与之前的略有不同

Form = new TForm2( this );
Form->ShowModal();

但是现在如果你想访问表格来更新标题,你可以简单地做

Form->Caption = "Changed Caption";

表格上的标题现在将被更改

于 2012-06-21T21:12:15.960 回答
5

博兰什么?德尔福?C++ 生成器?

对于Delphi:确保DelphiForm2在Project.dpr中创建了一个实例:Application.CreateForm(TForm2, Form2); 然后将Form2单元名称添加到单元中的一个uses子句中Form1,然后可以使用Form2.Show;Form2.ShowModal;

对于 C++:确保 C++ BuilderForm2在 Project.cpp 中创建了一个实例:Application->CreateForm(__classid(TForm2), &Form2); 然后在该单元的 .cpp 文件中添加一个#include用于该单元的 .hpp 文件的语句,然后您可以使用或。Form2Form1Form2->Show();Form2->ShowModal();

于 2012-05-29T07:47:12.987 回答