Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Delphi 的 BringToFront 會蓋掉 ShowModal 的 …

0 views
Skip to first unread message

Best boy

unread,
Aug 8, 1998, 3:00:00 AM8/8/98
to
可是前提是timer不能關掉啊!
有沒有辦法在timer沒關掉的情形下觸發並把Form帶到最前面,
而"不會"蓋在那個ShowModal的視窗上?

※ 引述《"charge" <cha...@ms1.accmail.com.tw>, 看板: Oop》之銘言:
: Timer1.Enabled:=False;
: Form1.ShowModal;
: Timer1.Enabled:=true;
: Best boy <adj...@bbs.yzu.edu.tw> 次寫入到主題
: <3PkeNd$1...@bbs.yzu.edu.tw>...
: > 為何 Delphi 的 BringToFront 會蓋掉 ShowModal 的視窗?
: > 問題是這樣的:
: > 當程式用 ShowModal 來顯示一對話框要求使用者輸入一些資訊時,
: > 若此時程式的 Timer 觸發且把 Form 帶到最前面(BringToFront),
: > 就會蓋掉剛才那個對話框!!
: > 這個問題有解決的辦法嗎?
: > 煩請知道的人順便回一封到我的信箱,謝謝!
: > --
: > 史上最酷的 telnet 程式... Multi-Term 3.00b (中文版) 8/1/1998
: > Multi-Term的首頁: http://www.ntut.edu.tw/~u3440013/multiterm.html
: > --

--
※ Origin: 元智大學 BBS <bbs.yzu.edu.tw> ◆ From: [alpha.en.NTUT.edu.t] [0m

charge

unread,
Aug 10, 1998, 3:00:00 AM8/10/98
to
1.Timer 可視為獨立的Thread,由系統在時間到時執行
2.ShowModal 意為獨佔模式,但只在該程式範圍, 絕不包括"系統"

所以一但在Form.ShowModal時期,但Timer沒關掉而觸發時,系統的權限較大
只要程式未Free, BringToFront就生效

你可以在Form.ShowModal前就設一個Boolean, OnTime時就要判斷要不要BringToFront

假設有程式A,B,C分別為獨立程式
A 先發生ShowModal, B 次之, C則有Timer在跑然後又ShowModal

則C的Form會蓋過B, B再蓋過A, C的Timer則還是有效的

也就是說在多工環境下 ShowModal, StayOnTop, Show,
Timer彼此之間的關係是要考慮的
系統工程就是要考慮清楚,如果你還有問題可以把程式Post上來,大家研究研究,啥情況

必須ShowModal又必須BringToFont? 應該是可以避免的

Best boy <adj...@bbs.yzu.edu.tw> 次寫入到主題
<3Q1CTN$1...@bbs.yzu.edu.tw>...


> 可是前提是timer不能關掉啊!
> 有沒有辦法在timer沒關掉的情形下觸發並把Form帶到最前面,
> 而"不會"蓋在那個ShowModal的視窗上?

> : > 為何 Delphi 的 BringToFront 會蓋掉 ShowModal 的視窗?


> : > 問題是這樣的:
> : > 當程式用 ShowModal 來顯示一對話框要求使用者輸入一些資訊時,
> : > 若此時程式的 Timer 觸發且把 Form 帶到最前面(BringToFront),
> : > 就會蓋掉剛才那個對話框!!
> : > 這個問題有解決的辦法嗎?
> : > 煩請知道的人順便回一封到我的信箱,謝謝!

> --

Best boy

unread,
Aug 12, 1998, 3:00:00 AM8/12/98
to
: 1.Timer 可視為獨立的Thread,由系統在時間到時執行

: 2.ShowModal 意為獨佔模式,但只在該程式範圍, 絕不包括"系統"
: 所以一但在Form.ShowModal時期,但Timer沒關掉而觸發時,系統的權限較大
: 只要程式未Free, BringToFront就生效
: 你可以在Form.ShowModal前就設一個Boolean, OnTime時就要判斷要不要BringToFront
: 假設有程式A,B,C分別為獨立程式
: A 先發生ShowModal, B 次之, C則有Timer在跑然後又ShowModal
: 則C的Form會蓋過B, B再蓋過A, C的Timer則還是有效的
: 也就是說在多工環境下 ShowModal, StayOnTop, Show,
: Timer彼此之間的關係是要考慮的
: 系統工程就是要考慮清楚,如果你還有問題可以把程式Post上來,大家研究研究,啥情況
: 下必須ShowModal又必須BringToFont? 應該是可以避免的

啥情況下啊..就是啊..我是MultiTerm(一個telnet程式)的作者啦,
當使用者連上數個bbs站後,執行"腳本"中"開啟舊檔"(ShowModal)的同時,
其它的連線接收到嗶聲而自動切換到那個連線(BringToFront)上時,
就會蓋住那個"開啟舊檔"對話框...
這似乎是無法避免的..:(

那個程式放在我的網頁上,你可以上去下載來試試我剛才所說的情形...
http://www.ntut.edu.tw/~u3440013/multiterm.html

: Best boy <adj...@bbs.yzu.edu.tw> 次寫入到主題


: <3Q1CTN$1...@bbs.yzu.edu.tw>...
: > 可是前提是timer不能關掉啊!
: > 有沒有辦法在timer沒關掉的情形下觸發並把Form帶到最前面,
: > 而"不會"蓋在那個ShowModal的視窗上?

: > --
: [alpha.en.NTUT.edu.t] [0m

--
※ Origin: 元智大學 BBS <bbs.yzu.edu.tw> ◆ From: [140.131.1.153] [0m

0 new messages