社区
C++ Builder
帖子详情
怎么将参数传递给一个 new TForm 生成的表单?
freeia
2003-08-25 10:05:47
我像把参数传递给一个通过new生成的表单,如何做到?
最好能给出示例代码,谢谢!
...全文
31
17
打赏
收藏
怎么将参数传递给一个 new TForm 生成的表单?
我像把参数传递给一个通过new生成的表单,如何做到? 最好能给出示例代码,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sczyq
2003-08-27
打赏
举报
回复
构造函数
freeia
2003-08-27
打赏
举报
回复
"
错了,更正。
hongliqiu(在火中) 的写法,参数将无法在FormCreate,可以在FormShow、FormActivate中使用,如果你确认该参数不需要在FormCreate中使用,可以用hongliqiu(在火中) 的写法,否则,就得改构析函数。
"
是改析构函数,还是改构造函数啊?我理解为改构造函数.
sczyq
2003-08-27
打赏
举报
回复
错了,更正。
hongliqiu(在火中) 的写法,参数将无法在FormCreate,可以在FormShow、FormActivate中使用,如果你确认该参数不需要在FormCreate中使用,可以用hongliqiu(在火中) 的写法,否则,就得改构析函数。
zihan
2003-08-27
打赏
举报
回复
你可以直接写一个函数,在里面在new就可以了,
如我在那个窗体里面写下如下代码\
class __stdcall TForm1:MYFormCreate(Param: Variant);
{
TForm1* Form1;
Form1 = new TForm1;
//在这里写你的这个参数的作用就可以了。
return Form1;
}
然后在其他地方调用这个函数就可以了,如
TForm1 *Form1 = TForm1->MyFormCreate(1);
自己就不用另外写创建函数了
我这里不感确定那个class 对不对,如果不对,就该为TForm1试试,因为最近一直用Delphi都忘记了CB的用法了,Delphi是这样用的。
freeia
2003-08-27
打赏
举报
回复
还是等几天再结贴吧,觉得大家回答得太精彩了.
Cocoky
2003-08-27
打赏
举报
回复
我平时都是用的第一种方法
可行
freeia
2003-08-26
打赏
举报
回复
各位,等我使用后再给分,先憋着.
另:
我还有两个帖子可以去看看,谢谢了!
1. http://expert.csdn.net/Expert/topic/2186/2186091.xml?temp=8.828372E-02
2. http://expert.csdn.net/Expert/topic/2188/2188024.xml?temp=.9966699
Robin
2003-08-26
打赏
举报
回复
直接自己定义,然后调用Parent Class!
niuzhenjun
2003-08-25
打赏
举报
回复
有三种方法可以实现:
1. hongliqiu(在火中) 的方法。
2. 就像 sczyq(我又...........) 说得那样,:hongliqiu(在火中) 的写法,参数将无法在FormCreate、FormShow、FormActivate中使用。但是你可以将1的方法改造一下,将
public: // User declarations
<TYPE> YourMember; //你的新Form中需要用到的参数。
改为公有属性。
public: // User declarations
__property <TYPE> YourMember = {read = Getnumber,write = Getnumber}; //你的新Form中需要用到的参数。
这样的好处是当你对YourMember赋值/取值时可以触发一个过程Getnumber(当然可以在read和write中触发不同的过程)来实现额外的工作。
3.改写构造函数,就像sczyq(我又...........) 的代码那样实现。
sczyq
2003-08-25
打赏
举报
回复
:hongliqiu(在火中) 的写法,参数将无法在FormCreate、FormShow、FormActivate中使用,
sczyq
2003-08-25
打赏
举报
回复
改写构析函数!
__fastcall TForm1::TForm1(TComponent* Owner, AnsiString cStr)
: TForm(Owner)
{
MyString = cStr; // MyString 在.h中声明类型为AnsiString
}
使用时
AnsiString ccStr = "111";
Form1 = new TForm1(this, ccStr);
freeia
2003-08-25
打赏
举报
回复
高!试试看!
hongliqiu
2003-08-25
打赏
举报
回复
直接写NewForm中的公共属性就行了。
class TNewForm: public TForm
{
__published: // IDE-managed Components
private: // User declarations
public: // User declarations
<TYPE> YourMember; //你的新Form中需要用到的参数。
};
在原Form中的方法中:
newForm = new TNewForm(this);
//之后直接写参数就行了
newForm->YourMember = ??? //需要传入的值。
wangxd
2003-08-25
打赏
举报
回复
构造最好
freeia
2003-08-25
打赏
举报
回复
我现在用的就是global方法,觉得不爽啊.
hongliqiu
2003-08-25
打赏
举报
回复
还有一种方法,采用Global参数。
呵呵,有时候为了清晰各个Form之间的联系,我也使用Global参数(相当于中间变量)。
几种方法各有各的好处,看你怎么用了,第一种方法最简单直接。
freeia
2003-08-25
打赏
举报
回复
To niuzhenjun:
是不是第二种方法最好?
delphi dll创建及调用
第一章 DLL简单介绍由于在目前的学习工作中,需要用到DLL文件,就学习了下,在这里作个总结。首先装简单介绍下DLL:1,减小可执行文件的大小DLL技术的产生有很大一部分原因是为了减小可执行文件的大小。当操作系统进入Windows时代后,其大小已经达到几十兆乃至几百兆。试想如果还是使用DOS时代的单执行文件体系的话
一个
可执行文件的大小可能将达到数十兆,这是大家都不能接受的。解决的方法就是...
Dbgrid使用技巧(下)-
Dbgrid使用技巧(下)- - 二、建立项目,实现功能 1.新建一项目,并为
表单
添加相关控件,各控件主要属性如下表: 2.建立各Click的事件代码 Button1(打开表)的Click事件代码如下: procedure T
Form
1.Button1Click(Sender: TObject); begin
Dbgrid使用技巧(下)
Dbgrid使用技巧(下) 二、建立项目,实现功能 1.新建一项目,并为
表单
添加相关控件,各控件主要属性如下表: 2.建立各Click的事件代码 Button1(打开表)的Click事件代码如下: procedure T
Form
1.Button1Click(Sender: TObject); begin Tabl
Delphi 的持续机制浅探(转)
目 录 =============================================================================== ⊙ DFM 文件与持续机制(persistent) ⊙ ReadComponentResFile / WriteComponentResFile 函数 ⊙ Delphi 持续机制框架简述 ⊙
一个
T
Form
对象的创...
Delphi 的RTTI机制浅探<一>
目 录===============================================================================⊙ DFM 文件与持续机制(persistent)⊙ ReadComponentResFile / WriteComponentResFile 函数⊙ Delphi 持续机制框架简述⊙
一个
T
Form
对象的创建过程⊙ TStream...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章