怎样禁止应用程序和MDI窗口多次启动? 1.当应用程序启动时,怎样防止再启动这个程序?2.当启动了一个MDI窗口时,如果没有关闭这个MDI窗口,怎样防止再启动这个MDI窗口? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只能打开唯一一个窗口:form1.showmodal; 第一个问题:const CM_RESTORE = WM_USER + $1000;var RvHandle : hWnd;{$R *.res}begin RvHandle := FindWindow('系统', NIL); if RvHandle > 0 then begin Application.MessageBox('您的系统中已经有本程序正在运行!','系统提示',MB_OK+MB_ICONERROR+MB_SYSTEMMODAL); PostMessage(RvHandle, CM_RESTORE, 0, 0); Exit; end; Application.Initialize; Application.Title := '系统'; Application.CreateForm(TfrmMain, frmMain); Application.Run;end.//主窗体Unit Main const CM_RESTORE = WM_USER + $1000; public procedure CreateParams(var Params: TCreateParams); override; Procedure RestoreRequest(var message: TMessage); message CM_RESTORE;第二个问题:if not Assigned(Form2) then 用if createmutex(nil,true,'aaaaaaaassdf')=ERROR_ALREADY_EXISTS then application.terminate; 问一个多媒体定时器的问题 高手赐教 制作一个Com接口的开关? 汉字转换成UCS2编码? 大侠们救命啊!!!!! 通过哪个函数能够弹出数据库连接向导? Delphi越高的版本,越好? 字符串转化的一个小问题 treeview和listbox组合使用的问题 用SQL将表字段改名问题: 大家由没有碰到这样的问题? 开发600人的生产企业的ERP需多长时间? 一个不大的问题在线等.
form1.showmodal;
const
CM_RESTORE = WM_USER + $1000;var
RvHandle : hWnd;
{$R *.res}begin
RvHandle := FindWindow('系统', NIL);
if RvHandle > 0 then
begin
Application.MessageBox('您的系统中已经有本程序正在运行!','系统提示',MB_OK+MB_ICONERROR+MB_SYSTEMMODAL);
PostMessage(RvHandle, CM_RESTORE, 0, 0);
Exit;
end;
Application.Initialize;
Application.Title := '系统';
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.//主窗体
Unit Main
const
CM_RESTORE = WM_USER + $1000;
public
procedure CreateParams(var Params: TCreateParams); override;
Procedure RestoreRequest(var message: TMessage); message CM_RESTORE;第二个问题:
if not Assigned(Form2) then
application.terminate;