==问一个简单的问题==

edmond_xia 2001-07-20 09:42:46
有一个窗体(form1)弹出另一个窗体(form2)
在form2种如何访问或者设置form1的属性,也就是如何得到form1的指针
...全文
113 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wujinbao 2001-07-20
  • 打赏
  • 举报
回复
将form1的指针做为调用form2的函数的参数传入不行么?
wjzhuang 2001-07-20
  • 打赏
  • 举报
回复
>>引用form1指针
你直接使用
Form1->Button1->...
就可以了
edmond_xia 2001-07-20
  • 打赏
  • 举报
回复
多谢了,笨苯猪真有专业精神:))

不过对于那个引用的问题,还是不太清楚
我在unit2.cpp中include unit1.h,然后在其中引用form1指针,可是出错了:((
窗体的创建顺序是form1,form2
wjzhuang 2001-07-20
  • 打赏
  • 举报
回复
第一和第二的区别在于窗体的创建是否自动创建
第三种方法我少了一句显示窗体的语句
现加上
Form2->Show();
//或者
Form2->ShowModal()
第三种方法用的很少,不是规范的用法
winmain()里面创建的方法就是使用第三种方法
这种方法创建的是一个全局变量,只要include 该窗体头文件的都可以访问,因为这种方法创建的窗体驻留内存
其实第二种方法就是用第三种方法先创建,只是没有显示

注意,方法1和2都是对于模式窗体而言的,非模式窗体要这样:
Form2->Show();
edmond_xia 2001-07-20
  • 打赏
  • 举报
回复
果然出错了:(((


wjzhuang 2001-07-20
  • 打赏
  • 举报
回复
i 服了 u
edmond_xia 2001-07-20
  • 打赏
  • 举报
回复
啊?这么简单呀?
但是我还是有一些不明白,#include之后,在编译关系上时说的过去的

但是,程序运行后,是先创建form1的实例然后在创建form2的实例,简单的include一下
解决问题么?觉得有点别扭

还有,笨苯猪,你那三种创建方法有什么区别么?




XioGua 2001-07-20
  • 打赏
  • 举报
回复
这回我最早, 哈哈哈哈~~~~~~~~~~~

^_^
wjzhuang 2001-07-20
  • 打赏
  • 举报
回复
在unit1.cpp
#include "unit2.h"

弹处窗体的方法1:
Form = new TForm(Application);
//Form = new TForm(this);也可以
Form->ShowModal();
delete Form2;
//不是自动创建的窗体
方法2:
Form2->ShowModal();
//自动创建的窗体
方法3:
Application->CreateForm(__classid(TForm2),&Form2);

要在form2中访问form1的属性和控件
只要在
unit2.cpp中加上
#include "unit1.h"
saite 2001-07-20
  • 打赏
  • 举报
回复
如果大家都问这种问题就好了,哈哈。
XioGua 2001-07-20
  • 打赏
  • 举报
回复
Form2的cpp文件中加入: #include <unit1.h>

然后直接用 Form1->...就行了...

0_0
BCB 2001-07-20
  • 打赏
  • 举报
回复
#include "unit1.h"
xycleo 2001-07-20
  • 打赏
  • 举报
回复
来的太晚了!!最近老是迟到1!!

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧