線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1782
推到 Plurk!
推到 Facebook!

如何判斷某一個form是否已開啟

尚未結案
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-30 17:59:17 IP:61.30.xxx.xxx 未訂閱
請問各位大大,如何判斷某一個form是否已開啟 例如,我要以form.caption='Form1'為主 如何知道Form1是否已開啟呢???
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-30 18:22:50 IP:218.160.xxx.xxx 未訂閱
Hi mnsf您好: 要看你的form的建立方式做不同的判斷 不過通常比較普通的是使用Assigned函式 但要注意的是Form關閉時記得設成nil

try
   if not Assigned(form) then
      form := TForm1.Create(Self);
   form.ShowModal;
finally
   form.Free;
   form := nil;
end;
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-31 00:02:10 IP:61.62.xxx.xxx 未訂閱
補充一下 Miles 兄的說明, 若你是要找 caption 是 Form1 的 form 是否已建立, 可以使用 FindWindow 的方式, 其中的第二個參數傳入 caption 即可, 如:    
procedure TForm1.Button1Click(Sender: TObject);
var
  h: HWND;
begin
  h := FindWindow(nil, 'Form1');
  if h <> 0 then
  begin
    if MessageDlg('Form1 Found!'#13#10'bring it to front?', mtConfirmation, [mbYes, mbNo], 0)=mrYes then
      SetForeGroundWindow(h);
  end
  else
    ShowMessage('Form1 not found!');
end;
系統時間:2024-06-29 5:52:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!