★如何将messagebox窗口显示在最前端,并且定时自动关闭? 比如说一个程序定时弹出messagebox窗口进行提示,如何让它显示在其他窗口的前面?并且过一段时间之后自动关闭?不用messagebox用其它方法也行!请给出完整的代码,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 {我这里写了一个过程,可以完成你所需的功能:新建一个窗体,在其上放置一个Memo用于显示信息,一个Timer用于定时,一个按钮用于关闭提示窗口(将其ModalResult属性设置为mrOK),在需要调用本过程的窗体中uses unit2,调用ShowMyInfoBox过程即可,祝好运!}unit Unit2;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;type Tfrminfo = class(TForm) Memo1: TMemo; btnok: TButton; Timer1: TTimer; procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end;//显示提示信息的窗口,默认是隔1秒钟自动关闭,你可以在调用时//指定另外的值.procedure ShowMyInfoBox(info:String;timeout:Integer=1000);implementation{$R *.DFM}procedure ShowMyInfoBox(info:String;timeout:Integer=1000);Var frminfo:TFrminfo;beginfrminfo:=TFrminfo.Create(application);try frminfo.memo1.clear; frminfo.Memo1.Lines.Add(info); frminfo.Timer1.Enabled:=false; frminfo.Timer1.Interval:=timeout; frminfo.Timer1.Enabled:=true; frminfo.ShowModal;finally frminfo.Free;end;end;procedure Tfrminfo.Timer1Timer(Sender: TObject);beginModalResult:=mrOK;end;end. 只能自己做一个类似 MESSAGEBOX 的 FORM 你们可以去联众打一下它的游戏,,,它有个非常典型的这样的窗口,就是自已画的而不是用MessageBox做的 不用自己写窗口!只要在MessageBox函数中加入 MB_SYSTEMMODAL 常数就能实现最前端显示!至于定时关闭,用TIMER设定时间,到时找到messagebox窗口句柄,发送关闭消息即可! //New a Application,在窗体上加入一个 Button 和一个 Timer //将 Timer 的 Enabled 属性设定为 False //将 Timer 的 Interval 属性设定为 5000 // 这个就是关闭的时间 //其他代码如下:procedure TForm1.Button1Click(Sender: TObject);beginTimer1.Enabled:=True;MessageBox(Form1.Handle,'内容','标题',MB_SYSTEMMODAL);end;procedure TForm1.Timer1Timer(Sender: TObject);varWFound:THandle;beginTimer1.Enabled:=False;WFound:=FindWindow(nil,'标题');If WFound<>0 ThenSendMessage(WFound,WM_SYSCOMMAND,SC_CLOSE,0);end;//一点问题也没有,散分吧~ ★那么如何让这个messagebox上动态的显示当前的时间呢?我对消息和win 32 api一点不懂,惨!通过什么来学习呢? to:TempterX(兄弟) 我真是学到了。★那么如何让这个messagebox上动态的显示当前的时间呢?我对消息和win 32 api一点不懂,惨!通过什么来学习呢? TempterX(兄弟)的做法是对的,其实你只要注意加入句柄就行了自动消失的话你可以用不同的方法来控制它 要显示时间,那只能是自己画的窗体了。messagebox功能有限! TempterX(兄弟)做法较好,不过根据窗体标题找窗体的效率较低。建议自己做一类,这样以后也可以用了。 messagebox在最前面MessageBox(FindWindow('progman',nil),'This is A Test','Test',MB_TOPMOST); MessageBox(0'This is A Test','Test',MB_TOPMOST);就行了 错了是MessageBox(0,'This is A Test','Test',MB_TOPMOST); 求原版bds.exe,Delphi 2007 最新版,903 KB (924,672 字节) quickreport动态创建QRLabel而不能分页打印? 关于dbgrid的聚焦问题!!! case语句如何判断一个变量的值? 新手提问,请多关照,谢谢 各位大哥,请帮帮忙 四舍五入的函数是什么??? 用SQL怎样实现将已有的一个表结构复制到另外一个文件中去? 请教一下条形码扫描器的编程问题 Delphi中如何调用query的查询结果,出现下面问题!! 刚刚学数据库,不懂怎么规划,高手救命!! 已编译程序在系统重装了之后变了字体
我这里写了一个过程,可以完成你所需的功能:
新建一个窗体,在其上放置一个Memo用于显示信息
,一个Timer用于定时,一个按钮用于关闭提示窗口(将其
ModalResult属性设置为mrOK),在需要调用本过程的窗体中
uses unit2,调用ShowMyInfoBox过程即可,祝好运!
}
unit Unit2;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;type
Tfrminfo = class(TForm)
Memo1: TMemo;
btnok: TButton;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
//显示提示信息的窗口,默认是隔1秒钟自动关闭,你可以在调用时
//指定另外的值.
procedure ShowMyInfoBox(info:String;timeout:Integer=1000);implementation{$R *.DFM}procedure ShowMyInfoBox(info:String;timeout:Integer=1000);
Var
frminfo:TFrminfo;
begin
frminfo:=TFrminfo.Create(application);
try
frminfo.memo1.clear;
frminfo.Memo1.Lines.Add(info);
frminfo.Timer1.Enabled:=false;
frminfo.Timer1.Interval:=timeout;
frminfo.Timer1.Enabled:=true;
frminfo.ShowModal;
finally
frminfo.Free;
end;
end;procedure Tfrminfo.Timer1Timer(Sender: TObject);
begin
ModalResult:=mrOK;
end;end.
不用自己写窗口!只要在MessageBox函数中加入 MB_SYSTEMMODAL 常数就能实现最前端显示!至于定时关闭,用TIMER设定时间,到时找到messagebox窗口句柄,发送关闭消息即可!
//New a Application,在窗体上加入一个 Button 和一个 Timer //将 Timer 的 Enabled 属性设定为 False //将 Timer 的 Interval 属性设定为 5000 // 这个就是关闭的时间 //其他代码如下:procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=True;
MessageBox(Form1.Handle,'内容','标题',MB_SYSTEMMODAL);
end;procedure TForm1.Timer1Timer(Sender: TObject);
var
WFound:THandle;
begin
Timer1.Enabled:=False;
WFound:=FindWindow(nil,'标题');
If WFound<>0 Then
SendMessage(WFound,WM_SYSCOMMAND,SC_CLOSE,0);
end;
//一点问题也没有,散分吧~
我对消息和win 32 api一点不懂,惨!通过什么来学习呢?
我真是学到了。
★那么如何让这个messagebox上动态的显示当前的时间呢?
我对消息和win 32 api一点不懂,惨!通过什么来学习呢?
自动消失的话你可以用不同的方法来控制它
建议自己做一类,这样以后也可以用了。
MessageBox(FindWindow('progman',nil),'This is A Test','Test',MB_TOPMOST);
是
MessageBox(0,'This is A Test','Test',MB_TOPMOST);