怎样才能使一个窗体不重复打开啊?还请指教!
解决方案 »
- 为了减少网络流量,我每次只修改从服务器端读取得clientdataset中的一条记录,而且修改完成后必须保存到服务器,请问我如何只提交这一条记录呢
- 谁知道以下是什么数据类型?
- 一个小问题,请帮忙,谢谢!
- OnExit有问题?
- 哪里dephi编程的好网站
- 小弟提问:请关照一下!^-^
- 搞了这么多年Delphi, 居然被这个小问题搞死了!大家帮我看一看是不是Delphi的Bug呢
- 如何在两个窗口之间传递变量!
- Delphi中可以动态建立控件吗?来的都有分
- 在Delphi三层MIS中如何从服务器端获取实际执行的SQL
- 在点击Listbox后,除了第一行的字符串的宽度不变外,其他行都发生变长,如何使其他行的长度不变?
- 莫名其妙之乱扣信誉分
implementation
var hnd: THandle;initialization
hnd := CreateMutex(nil, True, 'irgendwaseinmaliges');
if GetLastError = ERROR_ALREADY_EXISTS then Halt;finalization
if hnd <> 0 then CloseHandle(hnd);
end.
f:HWND;
begin
f := FindWindow('TForm1','Form1');
if f <> 0 then
begin
ShowWindow(f,SW_SHOWNORMAL);
SetForegroundWindow(f);
exit;
end; 加在program里就可以了
begin
h:=FindWindow('Tsend_card','send_card');
if h=0 then
begin
send_card:=Tsend_card.Create(nil);
send_card.show;
end;
就像 debussy(debussy) 所说的
在工程文件中加入
begin
CreateMutex(nil, False, 'MyPrograme'); //MyPrograme 为一个标识,当运行程序时
//就会在系统中保存此标识,所以最好设置成独一无二的字符串
if GetLastError = ERROR_ALREADY_EXISTS then
begin
MessageBeep(0);
ShowMessage('应用程序已经运行,不能加载!');
Exit;
end;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
pc:pchar;
strtile:string;
isfound:hwnd;
begin
getmem(pc,255);
strtile:=Applicaton.Title;
application.title:='one time';
strpcopy(pc,strtitle);
isfound:=findwindow(nil,pc);
Application.Title:=strtitle;
if isfound=0 then //if isfound=0 the program was not running;
begin
showwindow(isfound,SW_RESTORE);
application.Terminate;
end;
freemem(pc);
end;
if not Assigned(Fm_TB_Xsqk_XsdbN) then begin
Application.CreateForm(TFm_TB_Xsqk_XsdbN, Fm_TB_Xsqk_XsdbN);
end else begin
Fm_TB_Xsqk_XsdbN.Show;
Fm_TB_Xsqk_XsdbN.WindowState:=wsNormal;
Fm_TB_Xsqk_XsdbN.BringToFront;
end;procedure TFm_TB_Xsqk_XsdbN.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
Fm_TB_Xsqk_XsdbN:=nil;
end;