1. 比如
Form1里 form2.show 显示出Form2 而Form2的按钮Btn1按下后,我想让Form1知道Form2的Btn1按下了,怎么通知Form1?需要自定义消息吗?2. 还有就是 模态对话框的问题:比如我在form1中 form2.showModal 使Form2显示,
但我想按下Form2的BtnOk后,不会自己关闭Form2,而是一直开着,
直到满足我的条件再关闭,而且要通知Form1按下BtnOk了。 要怎么写?谢谢
Form1里 form2.show 显示出Form2 而Form2的按钮Btn1按下后,我想让Form1知道Form2的Btn1按下了,怎么通知Form1?需要自定义消息吗?2. 还有就是 模态对话框的问题:比如我在form1中 form2.showModal 使Form2显示,
但我想按下Form2的BtnOk后,不会自己关闭Form2,而是一直开着,
直到满足我的条件再关闭,而且要通知Form1按下BtnOk了。 要怎么写?谢谢
解决方案 »
- Metro的风格很漂亮啊,写了个代码看了看还算舒服
- 如何直接对USB读卡器进行读、写卡操作(无DLL)
- FileStream错在哪里?
- 求助 ole execl FWorkbook.SaveAs(filename) 当出现文件名重复会提示 如何避免
- 多客户端数据表同步问题?
- 为什么DELPHI6没有MTS OBJECT的?我在学李维的《DELPHI5X ADO/MTS/COM+高级程序设计篇》啊!
- 程序中怎样改文件名啊?
- 关于样式匹配条件的问题
- try except捕捉不到异常的情况有
- 插入bit型字段该怎么写?急!急!急!
- 怎样在delphi7的添加Fastnet控件??
- 在Form上如何选择多个控件?
Form1定义个函数,在 Form2的Btn1按下 时,顺便调用 form1 的函数就可
设置 Button1.ModalResult 为 mrNone 就不会自己关闭Form2,而是一直开着,
然后Form1就响应这个消息,就是里面有一个消息处理函数可是我不知道怎么写?
比如说:当你单击form2.btn1后,在里面加入一行代码
form1.**.click.
这样能在FORM1里响应FORM2的消息。
不知道对不对~!
Const
WM_MYMESSAGE=WM_USER+1000;在Form2.btn1 Click中执行
postmessage(form1.handle,WM_MYMESSAGE,0,0);form1中定义
procedure OnWM_MYMESSAGE(Var Msg:TMessage);WM_MYMESSAGE;procedure TForm1.OnWM_MYMESSAGE(Var Msg:TMessage);
begin
showmessage('收到消息');
end;procedure
最好不在要Form2中直接引用Form1--
可是还是不明白上面这句? 比如我定义了一个
private
formhandle:HWnd;procedure TForm2.FormCreate(Sender: TObject);
begin
formHandle:=form1.handle;
end;那这样的话,还是得在 unit2里 加上 uses Unit1; 还是有引用Form1?
....
public
published
property FormHandle:THandle Read FFormHandle Write FFormHandle;
end;在创建Form2的时候赋值。
你的Form2是怎么创建的,是在启动是自动创建的还是自己创建的
如果是启动时创建的,则在dpr文件中Application.CreateForm(Tform1,form1);
Application.CreateForm(Tform2,form2);
form2.formHandle:=Form1.Handle;
type
TForm1 = class(TForm)
private
{ Private declarations }
private
FFormHandle :THandle;//自己添加
public
{ Public declarations }
published //
property FormHandle:THandle Read FFormHandle Write FFormHandle; //添加一个属性
end;窗体也是一个对象呀! 就是添加一个属性。楼主没有搞清DELPHI中类的定义吧。
我才学的Delphi,本来编程就不好
都没见过有Published的东西 呵呵 真的很谢谢