首先三个概念:
1、响应窗口:比如窗口A中打开窗口B,B在A的上面,A得不到焦点,只有关闭了B,A才能重新被激活。
2、弹出式窗口:比如窗口A中打开窗口B,B在A的上面,AB都可以得到焦点。
3、主窗口:比如窗口A中打开窗口B,B可以在A的上面,A也可以跑到B的上面,AB都可以得到焦点。我的问题就是怎么样在任何情况下都能够提示响应窗口式的消息。我在一个1.pas(没有相应窗体,只有一个函数)里写消息提示框,可是好像都达不到 响应窗口的目的。
我用A.Showmodule打开窗口比较。然后把1.pas包含在A里面。首先,我用:
Application.NormalizeTopMosts;
Application.MessageBox('合同期满提醒.'+#13+'请重试!',
'Application.MessageBox', [smbOK]);
Application.RestoreTopMosts;
效果是 两个成了 主窗口 的关系。
查帮助:
Use NormalizeTopMosts to allow a message box or dialog box that is displayed using Qt functions, appear on top of a topmost form. Otherwise the topmost form remains on top, and may obscure the message box.
它是说可以在form里打开响应窗口的,可是奇怪我在窗口里尝试打开也不行啊。错在哪里呢?
在我的pas里打开就更没用了。第二,我用ShowMessage()。
两者成了弹出窗口的关系。
第三,我用Messagedlg(),
两者成了弹出窗口的关系。
===================谁能告诉怎么令弹出的消息窗口和A是响应窗口的关系呢?
1、响应窗口:比如窗口A中打开窗口B,B在A的上面,A得不到焦点,只有关闭了B,A才能重新被激活。
2、弹出式窗口:比如窗口A中打开窗口B,B在A的上面,AB都可以得到焦点。
3、主窗口:比如窗口A中打开窗口B,B可以在A的上面,A也可以跑到B的上面,AB都可以得到焦点。我的问题就是怎么样在任何情况下都能够提示响应窗口式的消息。我在一个1.pas(没有相应窗体,只有一个函数)里写消息提示框,可是好像都达不到 响应窗口的目的。
我用A.Showmodule打开窗口比较。然后把1.pas包含在A里面。首先,我用:
Application.NormalizeTopMosts;
Application.MessageBox('合同期满提醒.'+#13+'请重试!',
'Application.MessageBox', [smbOK]);
Application.RestoreTopMosts;
效果是 两个成了 主窗口 的关系。
查帮助:
Use NormalizeTopMosts to allow a message box or dialog box that is displayed using Qt functions, appear on top of a topmost form. Otherwise the topmost form remains on top, and may obscure the message box.
它是说可以在form里打开响应窗口的,可是奇怪我在窗口里尝试打开也不行啊。错在哪里呢?
在我的pas里打开就更没用了。第二,我用ShowMessage()。
两者成了弹出窗口的关系。
第三,我用Messagedlg(),
两者成了弹出窗口的关系。
===================谁能告诉怎么令弹出的消息窗口和A是响应窗口的关系呢?
解决方案 »
- 请问怎么向Telnet控件发送alt+b字符阿?
- DELPHI高手帮忙看看BCB问题
- delphi自带数据库问题请教。(在线等待!)
- 如何在edit不让逗号和破折号输入
- 请教:关于在delphi中poxpro数据库的用法
- 编译错误!!!紧急!!!
- 关于BRCC32的问题!
- 怎么知道当前桌面上有多少个窗口呢?快来取分吧。
- 能帮我解释一下这个存储过程
- 为什么用DELPHI编写的WEB应用程序*.dll执行之后无法删除?
- d7+ADO+SQL2000,如何判断SQL2000数据库中存在某个表?
- 强烈建议斑竹有时间的话,把那些争论语言优劣性,某某语言有没有前途的帖子整理成一个放在最前面,让提问题的人看就行了~
form1:=tform1.create(self);
form1.show;
form1.update;
2、弹出式窗口和3、主窗口可用
form1:=tform1.create(self);
form1.show;
form1.update;==============老大,什么意思啊?不懂?
在form创建事件或显示事件里显示对话框。
===================没明白你什么意思?
我想让函数直接来完成所有提示,懒得写返回值再根据返回值提示。
两者成了弹出窗口的关系。
第三,我用Messagedlg(),
两者成了弹出窗口的关系。??/
兄弟,你的表达让人……:(
刚开始时我有说明。
老大,顺便告诉我怎么样将 application.handle 转化为HWND?
application.handle :
ndicates the unique 4-byte identifier for the underlying Qt QApplication widget instance.
直接就可以当作long使用。
你那不用转换可以通过??
QApplicationH=Long??
-------------
QApplicationH = class(QObjectH) end;
--------------所以要转化,怎么转化?
QApplicationH 转化了能得到long型的Hwnd?我看还是有问题!
QApplication……是在clx中使用的,你的是什么应用程序啊?
但是你查一下 TApplication 的handle就知道了。
var i: int64;
begin
i:= application.Handle;
showmessage(inttostr(i));
end;
把 B 窗口的 FormStyle 属性置为 fsStayOnTop 不就行了
handle: getforegroundwindow//总是在屏幕最前面
form.handle//form的前面
0//
知道原因了,是因为我在Uses里包含了Forms和QForms,而QForms放在后面一个,编辑的时候它提醒了我QForms的handle的定义。可是运行之后还是没能达到响应窗口的关系!我也是无能为力了。Q开头的单元是干什么的?确实不懂啊。是CLX的?
那我查帮助是不是要查VCL的?===============
此生就带着遗憾过日子吧!----------------
你们都没有遇到这样子的问题吗?
那我算不算得古今第一人?是我写的代码有问题还是我这个人有问题?
还是两者都有问题?
没有什么问题啊!//主窗体单元
unit Unit1;interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation
uses Unit3;{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
A.ShowModal; // Show 一个模式的窗体
end;
end.//一个用于 ShowModal 的窗体单元
unit Unit3;interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,unit2, StdCtrls;type
TForm3 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
A: TForm3;
implementation{$R *.dfm}procedure TForm3.Button1Click(Sender: TObject);
begin
ShowMe;
end;
end.//消息提示函数的单元
unit Unit2;interface
uses
Dialogs;function ShowMe:Boolean;
implementation
function ShowMe:Boolean;
begin
ShowMessage('sg');
end;
end.
------------------------------
楼主的意思是 响应窗口 = 模式窗口 ??form.ShowModal
非常感谢你,我终于知道我错在哪里了。
哎,真是,我在uses里多放了一个,QDialogs;
--------------------------------------不过经过这次不断的测试,我终于知道其中的奥妙揭帖!
---
让各位就等了!