關於LoadPackage & UnloadPackage... |
尚未結案
|
kerochan
一般會員 發表:9 回覆:6 積分:3 註冊:2005-01-26 發送簡訊給我 |
請問,各位前輩
小弟使用Form1 LoakPackage載入一個Bpl
載入後,開啟該Bpl多個視窗 Form2, Form3...(使用Show)... Form1因為不知道Form2, Form3何時結束
因此,如果強行Unload Package,會同時關閉所有該Bpl尚未關閉的Form 請問,能夠寫出,偵測已被載入的BPL,其內的Form還有幾個尚未關閉嗎?
如Form3尚未關閉,那麼我的Form1就停止Unload Pakcage
除非Form2, Form3都關閉了... 謝謝!
|
yyu10
中階會員 發表:9 回覆:99 積分:96 註冊:2005-02-18 發送簡訊給我 |
在Bpl中加Global变数 Count2, Count3: integer; 在 TForm2.Create 或 TForm2.FormCreate 中加 Inc(Count2); 在 TForm2.Destroy 或 TForm2.FormDestroy 中加 Dec(Count2); 对 TForm3 作类似修改. 在 TForm1 中,
if (Count2 = 0) and (Count3 = 0) then
UnloadPackage...... 如果你知道Form2, Form3的名字, 也可以用
if (not Application.FindComponent('Form2'))
and (not Application.FindComponent('Form3')) then
UnloadPackage...... _________________________
Programming is a passion 發表人 - yyu10 於 2005/03/07 04:38:06
|
mustapha.wang
資深會員 發表:89 回覆:409 積分:274 註冊:2002-03-13 發送簡訊給我 |
可以判断Form在哪个bpl里
var AHandle:HModule; begin AHandle:=LoadPackage(... var M:TMemoryBasicInformation; begin for i:=Screen.FormCount-1 downto 0 do begin VirtualQuery(Screen.Forms[i].ClassType,M,SizeOf(M)); if (HModule(M.AllocationBase)=AHandle) then Screen.Forms[i].Close; end;久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听 發表人 - mustapha.wang 於 2005/03/07 09:50:44
------
江上何人初见月,江月何年初照人 |
kerochan
一般會員 發表:9 回覆:6 積分:3 註冊:2005-01-26 發送簡訊給我 |
|
mustapha.wang
資深會員 發表:89 回覆:409 積分:274 註冊:2002-03-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |