一些程序可能需要在沒(méi)有人干預(yù)的情況下自動(dòng)運(yùn)行。但是如果你需要讓用戶能夠更改程序默認(rèn)設(shè)置,或者需要讓程序使用默認(rèn)設(shè)置來(lái)運(yùn)行呢?
實(shí)現(xiàn)這一想法的一個(gè)方法是使用我稱之為 auto-ok 的對(duì)話框。在程序運(yùn)行時(shí),對(duì)話框會(huì)彈出來(lái)讓用戶根據(jù)其需要更改選項(xiàng)。如果用戶在一段時(shí)間內(nèi)不響應(yīng)的話,對(duì)話框會(huì)自動(dòng)關(guān)閉自己,程序則繼續(xù)運(yùn)行。下面我將向你示范如何創(chuàng)建這類對(duì)話框。
這種方法是基于 timer 控件實(shí)現(xiàn)的。具體實(shí)現(xiàn)方法如下:
將一個(gè) timer 放到窗體上,將其 interval 屬性設(shè)置為1000(即1秒)。
在窗體的 load 事件過(guò)程中,初始化一個(gè)time remaining 變量,將其值設(shè)置為對(duì)話框應(yīng)該保持打開(kāi)的總秒數(shù)。同時(shí),將 timer 控件的 enabled 屬性設(shè)計(jì)為 true 以使其開(kāi)始運(yùn)行。
在 timer 控件的 timer 事件過(guò)程中,遞減time remaining 變量(每次減1)。另外,你還可以在對(duì)話框上顯示所剩時(shí)間。
在time remaining 變量減到0時(shí),調(diào)用窗體的 ok 按鈕的 click 事件過(guò)程,關(guān)閉窗體繼續(xù)執(zhí)行程序。
下面是一些示例代碼。在窗體一級(jí),給出以下聲明:
const autoclose = 5
dim timeleftas integer
here's the form's load event procedure:
下面是窗體的 load 事件過(guò)程:
private sub form_load()
timeleft = autoclose
timer1.interval = 1000
timer1.enabled = true
end sub
下面是 timer 事件過(guò)程:
private sub timer1_timer()
timeleft = timeleft - 1
lbltimeremaining.caption = timeleft
if timeleft = 0 then
timer1.enabled = false
call okbutton_click
end if
end sub
在這個(gè)例子中,窗體的 ok 按鈕名為okbutton。這里沒(méi)有給出 ok 按鈕的事件過(guò)程中的代碼,里面應(yīng)該包含關(guān)閉對(duì)話框以及繼續(xù)執(zhí)行程序所需的代碼。
一個(gè)可選特性是使用窗體上任何控件的 change 事件過(guò)程來(lái)關(guān)閉定時(shí)器。這樣在用戶在對(duì)窗體上的任何控件進(jìn)行動(dòng)作時(shí)會(huì)取消定時(shí)器遞減。
實(shí)現(xiàn)這一想法的一個(gè)方法是使用我稱之為 auto-ok 的對(duì)話框。在程序運(yùn)行時(shí),對(duì)話框會(huì)彈出來(lái)讓用戶根據(jù)其需要更改選項(xiàng)。如果用戶在一段時(shí)間內(nèi)不響應(yīng)的話,對(duì)話框會(huì)自動(dòng)關(guān)閉自己,程序則繼續(xù)運(yùn)行。下面我將向你示范如何創(chuàng)建這類對(duì)話框。
這種方法是基于 timer 控件實(shí)現(xiàn)的。具體實(shí)現(xiàn)方法如下:
將一個(gè) timer 放到窗體上,將其 interval 屬性設(shè)置為1000(即1秒)。
在窗體的 load 事件過(guò)程中,初始化一個(gè)time remaining 變量,將其值設(shè)置為對(duì)話框應(yīng)該保持打開(kāi)的總秒數(shù)。同時(shí),將 timer 控件的 enabled 屬性設(shè)計(jì)為 true 以使其開(kāi)始運(yùn)行。
在 timer 控件的 timer 事件過(guò)程中,遞減time remaining 變量(每次減1)。另外,你還可以在對(duì)話框上顯示所剩時(shí)間。
在time remaining 變量減到0時(shí),調(diào)用窗體的 ok 按鈕的 click 事件過(guò)程,關(guān)閉窗體繼續(xù)執(zhí)行程序。
下面是一些示例代碼。在窗體一級(jí),給出以下聲明:
const autoclose = 5
dim timeleftas integer
here's the form's load event procedure:
下面是窗體的 load 事件過(guò)程:
private sub form_load()
timeleft = autoclose
timer1.interval = 1000
timer1.enabled = true
end sub
下面是 timer 事件過(guò)程:
private sub timer1_timer()
timeleft = timeleft - 1
lbltimeremaining.caption = timeleft
if timeleft = 0 then
timer1.enabled = false
call okbutton_click
end if
end sub
在這個(gè)例子中,窗體的 ok 按鈕名為okbutton。這里沒(méi)有給出 ok 按鈕的事件過(guò)程中的代碼,里面應(yīng)該包含關(guān)閉對(duì)話框以及繼續(xù)執(zhí)行程序所需的代碼。
一個(gè)可選特性是使用窗體上任何控件的 change 事件過(guò)程來(lái)關(guān)閉定時(shí)器。這樣在用戶在對(duì)窗體上的任何控件進(jìn)行動(dòng)作時(shí)會(huì)取消定時(shí)器遞減。

