首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么从一个窗体传一个参数到另一个窗体

2012-02-16 
如何从一个窗体传一个参数到另一个窗体我刚从delphi转过来,delphi中是写一个入口函数不知道bcb是怎么处理[

如何从一个窗体传一个参数到另一个窗体
我刚从delphi转过来,delphi中是写一个入口函数
不知道bcb是怎么处理

[解决办法]
。。。重载是C++的语法吧,楼主。比如说
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
这个是窗体类的系统的构造函数。
你重载一下这个构造函数。
__fastcall TForm1::TForm1(AnsiString ansiText)
: TForm(Owner)
{
m_ansiGetText = ansiText;//m_ansiGetText为类变量,可以放在private中。
}
这个就是重载了,用在调用的时候
TForm1 * pForm1 = new TForm1(ansiText);
这样就可以调用到这个自己写的构造函数了。

[解决办法]
1、从构造函数里直接传。
2、全局变量。
3、窗体的公共变量。
[解决办法]
其他缺点是什么我不知道。但是我知道如果用全局变量呢,万一别的模块有改动,你对这个变量的操作就要改动,如果用窗体类公有类变量呢,也会有这个问题,因为其它人能访问到,就可以改变它的值。所以安全的做法是重载构造函数。这样比较符合面向对象的程序设计思想。
[解决办法]
函数申明写到.h文件里:比如:
//---------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------
class TForm1 : public TForm
{
__published:// IDE-managed Components
private:// User declarations
public:// User declarations
__fastcall TForm1(TComponent* Owner);
__fastcall TForm1(AnsiString ansiTest);
};
//---------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------
#endif

热点排行