專利名稱::閱讀助理的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及閱讀助理,特別涉及表現(xiàn)供閱讀的文本和/或圖形信息的系統(tǒng)及方法。
背景技術(shù):
:多年來(lái)開發(fā)和促進(jìn)了用于提高閱讀速度而又保持對(duì)閱讀內(nèi)容理解和記憶的許多不同技術(shù)。這些技術(shù)涉及背離閱讀以印刷頁(yè)面格式表示的文本的傳統(tǒng)方法,用傳統(tǒng)方法將每個(gè)后續(xù)字依次在頁(yè)面上逐行讀出。研制不同閱讀技術(shù)主要?dú)w因于與傳統(tǒng)閱讀方法有關(guān)的某些缺點(diǎn),這些缺點(diǎn)是要調(diào)和增加閱讀速度和保持理解之間的矛盾。此外,在文本的完整印刷頁(yè)面的表示方法中,文本基本上是靜止的,要求讀者沿一行移動(dòng)眼睛,這種方法可使讀者的注意力被出現(xiàn)在正在閱讀的字的上下左右的整個(gè)文本所分散。因此,許多讀者遭受重復(fù)閱讀文本的一些行、句、段之苦,這就要在首次閱讀該文本時(shí)放慢閱讀速度和努力保持對(duì)閱讀內(nèi)容的理解和記憶。已有一些別的閱讀技術(shù)試圖涉及此特定的問(wèn)題,其方法是使用機(jī)器以在特定時(shí)刻不顯示本頁(yè)不正在閱讀的部分和/或另外加亮顯示正在閱讀的文本部分,從而訓(xùn)練讀者脫離老的閱讀式樣。這些技術(shù)的缺點(diǎn)在于文本仍然是被動(dòng)閱讀的,在于讀者仍需逐字移動(dòng)眼睛并保持與文本的加亮部分同步。而且由于采用這些技術(shù),這些技術(shù)高度地依賴機(jī)器,所以在現(xiàn)代計(jì)算機(jī)時(shí)代之前實(shí)現(xiàn)的費(fèi)用高昂。隨著現(xiàn)代計(jì)算機(jī)系統(tǒng)的出現(xiàn)、被廣泛接受和使用,這些閱讀技術(shù)可以用比過(guò)去低的成本來(lái)實(shí)現(xiàn)。而且,由于現(xiàn)代計(jì)算機(jī)系統(tǒng)的能力,可以開發(fā)和使用更為復(fù)雜和進(jìn)步的閱讀技術(shù)來(lái)全時(shí)地以把文本內(nèi)容存儲(chǔ)和顯示在計(jì)算機(jī)終端上的方法既提高閱讀速度又保持對(duì)閱讀內(nèi)容的理解和記憶,而不是把這些閱讀技術(shù)僅當(dāng)作訓(xùn)練工具使用。隨著如因特網(wǎng)之類的信息網(wǎng)和數(shù)據(jù)庫(kù)的普及及電子函件和如CDROM之類傳送、存儲(chǔ)大量文本信息的大容量媒體的使用,現(xiàn)在比以往任何時(shí)候更多地鼓勵(lì)人們提高他們的閱讀速度和改進(jìn)對(duì)文本信息的理解。加之有了現(xiàn)代個(gè)人計(jì)算機(jī)的內(nèi)在能力和有了諸如WINDOWS(注冊(cè)商標(biāo))和其他多任務(wù)處理視窗管理環(huán)境之類的圖形用戶界面的視覺動(dòng)力學(xué)說(shuō),就有理想的機(jī)會(huì)來(lái)使更熟練的閱讀技術(shù)問(wèn)世并使這些技術(shù)固定地與處理文本信息的適當(dāng)應(yīng)用軟件結(jié)合以提供致力于閱讀得更快理解得更深的新閱讀環(huán)境。發(fā)明的公開因此,本發(fā)明的目的是提供在現(xiàn)代計(jì)算環(huán)境下表現(xiàn)供閱讀的文本和/或圖形信息的系統(tǒng)和方法,以使其用戶能提高閱讀速度又能保持或增強(qiáng)對(duì)閱讀內(nèi)容的理解和記憶能力。按照本發(fā)明的一個(gè)方面,提供一種表現(xiàn)供閱讀的文本和/或圖形信息的系統(tǒng),包括顯示設(shè)備(means),用于在顯示媒體上顯示該文本和/或圖形信息;處理設(shè)備(means),用于接收電子編碼形式的所述文本和/或圖形信息并處理該信息以表現(xiàn)在所述顯示媒體上;控制設(shè)備(means),用于控制所述文本和/或圖形信息在所述顯示媒體上的表現(xiàn);以及輸入設(shè)備(means),用于輸入控制信號(hào)以操作所述處理設(shè)備和所述控制設(shè)備,或用于改變所述處理設(shè)備和所述控制設(shè)備的控制參數(shù);其中所述控制設(shè)備以相隔規(guī)定的消隱時(shí)間把所述文本和/或圖形信息的個(gè)別的和相繼的部分順序地放置在所述顯示媒體的相同位置處,每一部分以規(guī)定的顯示時(shí)間在所述位置上顯示。最好,所述控制設(shè)備包括對(duì)中工具(means),以使所述位置內(nèi)每個(gè)所述部分橫向?qū)χ?。最好,所述控制設(shè)備包括應(yīng)用工具(means),以規(guī)定用于表現(xiàn)所述文本和/或圖形信息的所述顯示媒體的總布局以及規(guī)定所述系統(tǒng)的諸視覺控制屬性。最好,所述應(yīng)用工具按照其特定控制參數(shù)的設(shè)定和按照從所述輸入設(shè)備輸入的所述控制信號(hào)而直接響應(yīng)于所述控制設(shè)備的所述控制參數(shù)并調(diào)用用于在所述總布局內(nèi)規(guī)定和指定所述文本和/或圖形信息表現(xiàn)的特定特性的特定控制函數(shù)。最好,所述控制設(shè)備包括窗口顯示工具(means)以把所述總布局安排成一個(gè)或更多個(gè)表現(xiàn)所述文本和/或圖形信息的顯示窗口。最好,所述窗口顯示工具把所述可見布局有選擇地劃分成閃現(xiàn)顯示窗口和瀏覽顯示窗口,其中所述閃現(xiàn)顯示窗口包括所述位置而所述瀏覽顯示窗口包括放置從中得到所述個(gè)別部分的所述文本和/或圖形信息的較大部分的區(qū)域。最好,所述控制設(shè)備包括對(duì)中滾動(dòng)工具(means),用于自動(dòng)地在所述瀏覽顯示窗口內(nèi)滾動(dòng)所述較大部分的表現(xiàn)及在所述瀏覽顯示窗口內(nèi)使把相應(yīng)的文本和/或圖形信息表現(xiàn)到所述個(gè)別部分的所述較大部分的行對(duì)中。最好,所述窗口顯示工具包括加亮工具(means)以加亮在所述瀏覽顯示窗口內(nèi)的所述相應(yīng)的文本和/或圖形信息。最好,所述控制設(shè)備包括延時(shí)工具(means),用于為所述規(guī)定的消隱時(shí)間和所述規(guī)定的顯示時(shí)間設(shè)定控制參數(shù)。最好,所述控制設(shè)備包括部分選擇工具(means),用于為所述個(gè)別部分設(shè)定控制參數(shù)。最好,所述處理設(shè)備是具有包括多任務(wù)處理、視窗管理的圖形用戶界面的微計(jì)算機(jī)。最好,所述控制設(shè)備包括時(shí)間管理工具(means),用于監(jiān)視由所述控制設(shè)備執(zhí)行諸函數(shù)的預(yù)期時(shí)間和已過(guò)去時(shí)間及用于協(xié)調(diào)放棄和回到對(duì)和由所述多任務(wù)處理視窗管理功能的控制。按照本發(fā)明的另一方面,提供一種表現(xiàn)供閱讀的文本和/或圖形信息的方法,包括選擇該文本和/或圖形信息的個(gè)別和相繼的部分;以相隔規(guī)定的消隱時(shí)間把所述部分順序地放置在顯示媒體的相同位置處;以及以規(guī)定的顯示時(shí)間在所述位置上顯示每個(gè)部分。各圖的簡(jiǎn)要說(shuō)明本發(fā)明將通過(guò)對(duì)其一個(gè)特定實(shí)施例的以下說(shuō)明而得到理解。該說(shuō)明的進(jìn)行將參照附圖,其中圖1是組成本系統(tǒng)的主要功能部件的方框圖;圖2是組成控制設(shè)備的各類函數(shù);圖3是表示由本系統(tǒng)執(zhí)行各種函數(shù)的流程圖;圖4是主屏幕的主要屏幕布局的復(fù)制品;圖5是表示下拉‘File’菜單的屏幕布局的復(fù)制品;圖6是‘Open’對(duì)話框已打開準(zhǔn)備打開待閱讀文本文件時(shí)的屏幕布局的復(fù)制品;圖7是表示瀏覽顯示窗口和閃現(xiàn)顯示窗口并且待讀文本文件的第一部分已在瀏覽顯示窗口內(nèi)顯示的屏幕布局的復(fù)制品;圖8與圖7類似,但是表示下拉‘Options’菜單;圖9是表示從圖8選擇‘Delays’對(duì)話框之后該對(duì)話框已打開的屏幕布局的復(fù)制品;圖10是表示從圖8所示的‘Options’菜單選擇‘Font’對(duì)話框之后該對(duì)話框已打開的屏幕布局的復(fù)制品;圖11是表示從圖8所示的‘Options’菜單選擇‘Flashes’對(duì)話框圖時(shí)該對(duì)話框已打開的屏幕布局的復(fù)制品;圖12是只顯示在其上正顯示單字的閃現(xiàn)顯示窗口的屏幕布局的復(fù)制品;圖13與圖12類似,顯示一不同字,但同樣地橫向?qū)χ?;圖14與圖7類似,但是表示下拉‘Read’菜單;圖15是表示瀏覽顯示窗口和閃現(xiàn)顯示窗口并且在瀏覽顯示窗口內(nèi)有選定的文本塊的屏幕布局的復(fù)制品;圖16與圖7類似,但是表示下拉‘Speed’菜單;圖17與圖7類似,表示閱讀程序的開始,其中閃現(xiàn)顯示窗口表現(xiàn)待讀文本的個(gè)別部分,而瀏覽顯示窗口則加亮文本的相應(yīng)部分;以及圖18是總屏幕布局的另一張圖,表示瀏覽顯示窗口和閃現(xiàn)顯示窗口和作為正在閱讀的文本個(gè)別部分的正在顯示的加亮字,同時(shí)表示瀏覽顯示窗口內(nèi)文本的對(duì)中。實(shí)現(xiàn)本發(fā)明的最佳方式本實(shí)施例的目的是提供一種使用運(yùn)行稱作WINDOWS(注冊(cè)商標(biāo))的類型的多任務(wù)處理視窗管理的圖形用戶界面的現(xiàn)代微計(jì)算機(jī)系統(tǒng)來(lái)表現(xiàn)供閱讀用的文本和/或圖形信息的系統(tǒng)和方法。如圖1所示,系統(tǒng)11一般包括微計(jì)算機(jī)形式的處理設(shè)備13,還具有可視顯示單元形式的顯示設(shè)備15、鍵盤和鼠標(biāo)形式的輸入設(shè)備17及計(jì)算機(jī)程序形式的控制設(shè)備19。處理設(shè)備13的微計(jì)算機(jī)包括存儲(chǔ)如文本文件之類的電子編碼形式的文本和/或圖形信息的適當(dāng)存儲(chǔ)器媒體,也包括控制設(shè)備19的計(jì)算機(jī)程序。這種存儲(chǔ)器媒體可以是硬盤、磁帶、CDROM、軟盤等,或者作為另一種選擇,可以是經(jīng)由調(diào)制解調(diào)器或其他通信接口訪問(wèn)的遠(yuǎn)地?cái)?shù)據(jù)庫(kù),在對(duì)其接收和處理之后準(zhǔn)備在可視顯示單元上顯示。微計(jì)算機(jī)能以已知方式裝入控制設(shè)備19的計(jì)算機(jī)程序,并能選擇用于處理和表現(xiàn)存儲(chǔ)在該微計(jì)算機(jī)中供在可視顯示單元上閱讀用的文本和/或圖形信息的特定文本文件。顯示設(shè)備15的可視顯示單元包括陰極射線管屏幕、液晶顯示器或等離子顯示器形式的顯示媒體,在該顯示媒體上以已知方式顯示文本和/或圖形信息的可視圖像。輸入設(shè)備17的鍵盤和鼠標(biāo)組合地或交替地用于把控制信號(hào)輸入到微計(jì)算機(jī)處理設(shè)備13以操作該處理設(shè)備13和操作控制設(shè)備19的計(jì)算機(jī)程序、以及改變所述處理設(shè)備和控制設(shè)備的各控制參數(shù)。處理設(shè)備13的微計(jì)算機(jī)在諸如MS-DOS(注冊(cè)商標(biāo))之類的適當(dāng)操作系統(tǒng)下和上述的如WINDOWS3.1(注冊(cè)商標(biāo))之類的多任務(wù)處理和視窗管理的圖形用戶界面下操作??刂圃O(shè)備的計(jì)算機(jī)程序的形式是作為WINDOWS(注冊(cè)商標(biāo))本身程序的使用動(dòng)態(tài)鏈接庫(kù)操作的應(yīng)用軟件,該應(yīng)用軟件用面向?qū)ο缶幊痰恼Z(yǔ)言即C++來(lái)開發(fā)。因此該計(jì)算機(jī)程序包括應(yīng)用工具以按照WINDOWS3.1(注冊(cè)商標(biāo))來(lái)規(guī)定顯示文本信息用的顯示媒體的總布局和規(guī)定本系統(tǒng)的視覺控制屬性。應(yīng)用工具直接響應(yīng)于為程序規(guī)定的控制參數(shù)并且調(diào)用特定的控制函數(shù)以規(guī)定和指定在總布局內(nèi)表現(xiàn)文本信息的特定特征。這些控制參數(shù)可通過(guò)用鍵盤或鼠標(biāo)輸入各相對(duì)控制信號(hào)來(lái)設(shè)定,以后將對(duì)此作更詳細(xì)的說(shuō)明。所述計(jì)算機(jī)程序還包括窗口顯示工具以把總布局安排成顯示文本信息的一個(gè)或更多個(gè)顯示窗口。在這方面,窗口顯示工具把可視布局有選擇地劃分成閃現(xiàn)顯示窗口和瀏覽顯示窗口,以后將對(duì)此作更詳細(xì)描述。為了使用本說(shuō)明書,假定已熟悉計(jì)算機(jī)編程語(yǔ)言C++、動(dòng)態(tài)鍵接庫(kù)OWL2.0、程序在BorlandC++4.0(商標(biāo))中的編譯、WINDOWS3.1(商標(biāo))的運(yùn)行和WINDOWSAPI調(diào)用程序的執(zhí)行。計(jì)算機(jī)程序包括四個(gè)源文件的編譯,即含有用于該計(jì)算機(jī)程序的主要源代碼的‘.cpp’文件、作為計(jì)算機(jī)程序首部的‘.hpp’文件、作為計(jì)算機(jī)程序資源的‘.rc’文件和作為計(jì)算機(jī)程序資源首部的‘.rh’文件。這四個(gè)文件的編譯產(chǎn)生‘.exe’可執(zhí)行文件,并與包含在BorlandC++4.0中的適當(dāng)動(dòng)態(tài)鍵接庫(kù),即BIDS402.DLL、OWL202.DLL、BC402RTL.DLL和CTL3DV2.DLL,一起運(yùn)行。該程序用菜單項(xiàng)來(lái)操作,每一菜單項(xiàng)有等效的加速鍵。每個(gè)菜單項(xiàng)及其等效加速鍵設(shè)計(jì)成送出一在規(guī)定的類中調(diào)用某一函數(shù)的消息,其以源代碼表達(dá)的定義見響應(yīng)表。下列表格表示的第一列中是菜單路徑選擇,第二列中是與該菜單選擇等效的加速鍵,第三列中是調(diào)用一函數(shù)用的送出的WINDOWS消息,第四列中是將被該消息調(diào)用的函數(shù)</tables>本計(jì)算機(jī)程序包括從在BorlandC++4.0標(biāo)準(zhǔn)庫(kù)或在OWL庫(kù)中提供的相應(yīng)祖類(ancestorclasses)中派生的若干類。如圖2所示,共有七個(gè)這樣的類21a至21g,另有一組非類函數(shù)23,所有這些均已組合在一起。所述的七類是由公共類TApplication派生的類TCharonApp21a、由公共類TLayoutWindow派生的類TCharonWin21b、由公共類TDialog派生的類TDelaysDialog21c、也是由公共類TDialog派生的類TFlashesDialog21d、由公共類TEditFile派生的類TBrowserPane21e、由公共類TWindow派生的類TFlashPane21f、以及由公共類String派生的類TString21g。將參考它們的成員函數(shù)對(duì)所述類的每一個(gè)作更詳細(xì)描述,尤其是參考已為特定類專門派生的那些成員函數(shù)和作為從相應(yīng)的祖類獲得的已重寫函數(shù)的那些成員函數(shù)。首先涉及類TCharonApp21a,該類從祖類TApplication派生,它主要包括產(chǎn)生本計(jì)算機(jī)應(yīng)用程序用的應(yīng)用工具,和TCharonWin事例。該類的成員函數(shù)如下1statusBar(公共變量)TstatusBar*statusBar;這是指向應(yīng)用窗口底部處狀態(tài)條事例的指針。2TCharonApp(公共構(gòu)造函數(shù))TCharonApp();此構(gòu)造函數(shù)構(gòu)造本計(jì)算機(jī)應(yīng)用程序。3InitMainWindow(私有方法)voidInitMainWindow();該函數(shù)重寫祖類的InitMainWindow()。它使用3D(三維)來(lái)顯示對(duì)話框的MSWindows的Ct13DDLL的使用能為可能。它創(chuàng)造隱藏的狀態(tài)條及把印模(printer)賦與變量statusBar。其次它通過(guò)例示TControlBar對(duì)象來(lái)創(chuàng)造控制條。然后把“漂亮的圖標(biāo)”插入該條中。當(dāng)按壓取自各資源的每個(gè)圖標(biāo)時(shí),會(huì)產(chǎn)生一消息,但是這些消息的每一個(gè)都會(huì)在菜單中有等效項(xiàng)。這些圖標(biāo)是通過(guò)從計(jì)算機(jī)程序初始化文件中設(shè)定主應(yīng)用窗口的窗口尺寸及從各資源中賦予它菜單、圖標(biāo)及加速鍵,該函數(shù)進(jìn)一步把框架固定到主應(yīng)用窗口上。主窗口的寬度和高度取自初始化文件中的表目Width和Height(見TCharonWin∷CanClose())。表目Hint被用作調(diào)用SetHintMode()的參數(shù)。下一個(gè)類TCharonWin21b如前所述從類TLayoutWindow中派出。它包含二個(gè)顯示窗口,即含有并顯示ASCII文本文件的頂部顯示窗口(這是類TEditFile的后代TBrowserPane的一事例),和顯示一字或一行字的底部顯示窗口(這是Twindow的后代TFlashPane的一事例)。該類是TFlashPane的friend。該類的成員函數(shù)如下1rates(公共變量)TDelayRatesrates;這是含有不同條件下的延遲時(shí)間的結(jié)構(gòu)事例。該結(jié)構(gòu)的成員及其用途如下2fileData(私有變量)TOpenSaveDialog∷TDatafileData;這是能用于獲得要閱讀的文件名的結(jié)構(gòu)事例。見OWL的類TFileOpenDialog。3fonData(私有變量)TChooseFontDialog∷TDatafontData;這是能用于獲得要顯示的字體屬性的結(jié)構(gòu)事例。見OWL的類TchooseFontDialog。4.browserpane(私有變量)TbrowserPanebrowserpane;這是頂部顯示窗口的事例。見類TBrowserPane。5flashpane(私有變量)TFlashPaneflashpane;這是底部顯示窗口的事例。見類TFlashPane。6flashing(私有變量)FLASH_LOOPflashing;FLASH_LOOP是FLASHING、NOT_FLASHING或QUIT的列舉型式。變量flashing是表示底部顯示窗口是否為閃現(xiàn)字的標(biāo)志。在程序中的各處必須知道此狀態(tài),例如當(dāng)用戶把光標(biāo)重新放到頂部顯示窗口中時(shí)。當(dāng)用戶選擇退出本應(yīng)用程序時(shí),設(shè)置QUIT的狀態(tài)。7disFont(私有變量)Tfont*dispFont;這是指向能用于在底部顯示窗口中顯示閃現(xiàn)的字體的指針。8autoSize(私有變量)BOOLautoSize;這是在底部顯示窗口中使用的、用戶字體尺寸設(shè)定的布爾標(biāo)志。TRUE表示字體尺寸應(yīng)與窗口成正比,F(xiàn)ALSE表示字體將按照f(shuō)ontData中的用戶指定的尺寸規(guī)格來(lái)畫出。9topOn(私有變量)BOOLtopOn;這是用戶頂部顯示窗口設(shè)定的布爾標(biāo)志。TRUE表示應(yīng)顯示頂部顯示窗口,F(xiàn)ALSE表示不應(yīng)顯示頂部顯示窗口。10hasTopPane(私有變量)BOOLhasTopPane;這是表示頂部顯示窗口顯示狀態(tài)的布爾標(biāo)志。TRUE表示在當(dāng)前顯示頂部顯示窗口(無(wú)論topOn是TRUE或是FALSE),F(xiàn)ALSE表示當(dāng)前不顯示頂部顯示窗口。本標(biāo)志與topOn標(biāo)志的區(qū)別在于本標(biāo)志表示應(yīng)用程序的當(dāng)前狀態(tài),而topOn則表示用戶優(yōu)選的設(shè)置。因?yàn)?,?dāng)應(yīng)用程序進(jìn)入暫停方式時(shí),頂部顯示窗口的顯示與用戶的優(yōu)選設(shè)置無(wú)關(guān)。11ifs(私有變量)ifstream*ifs;這是指向要閱讀的文件句柄的指針。12strIn(私有變量)TstringstrIn;這是Tstring的事例。它是正在閃現(xiàn)的當(dāng)前字或諸字。見Tstring。13pauseTick(私有變量)DWORDpauseTick;此變量涉及應(yīng)用程序處于暫停方式期間累加計(jì)時(shí)器的報(bào)時(shí)。進(jìn)行此報(bào)時(shí)以獲得準(zhǔn)確的每分鐘字?jǐn)?shù)(WPM)的計(jì)數(shù)。14initialTick(私有變量)DWORDinitialTick;此變量涉及起始計(jì)時(shí)器的報(bào)時(shí)以開始每分鐘字?jǐn)?shù)(WPM)的計(jì)數(shù)。15wordCount(私有變量)UINTwordCount;這是從復(fù)位initialTick時(shí)起在底部顯示窗口閃現(xiàn)的字?jǐn)?shù)。16pauseStarted(私有變量)BOOLpauseStarted;這是表示閃現(xiàn)閱讀已通過(guò)“unpause(解除暫停)”或相反通過(guò)“go(出發(fā))”起動(dòng)的布爾符號(hào)。TRUE表示閃現(xiàn)已經(jīng)在CmPause()中起動(dòng),而FALSE則表示閃現(xiàn)已經(jīng)在CmGo()中起動(dòng)。這是因?yàn)椤皍npause”和“go”是二種不同的特征,有二種不同的行為,應(yīng)用程序需要知道激活它的最近事件。如果閃現(xiàn)由CmPause()中的解除暫停所激活,它在其末端應(yīng)用標(biāo)記之外繼續(xù)使字閃現(xiàn),而“go”則在它到達(dá)末端應(yīng)用標(biāo)記時(shí)理應(yīng)停止閃現(xiàn)。17delay_ms(私有變量)UINTdelay_ms;這是準(zhǔn)備用作Delay()的參數(shù)的數(shù)字使得用此數(shù)值對(duì)Delay()的調(diào)用是1毫秒(見Delay())。此變量在應(yīng)用程序起動(dòng)時(shí)在SetupWindow()中只計(jì)算和起動(dòng)一次。如在Delay())的說(shuō)明中所解釋的,這一局部循環(huán)延時(shí)用于繞過(guò)55毫秒屏障。18TCharonWin(公共構(gòu)造函數(shù))~TCharonWin();此構(gòu)造函數(shù)刪除ifstream(*if,要顯示的文件)和Tfont(*dispFont,在底部顯示窗口中顯示用的字體)的事例。19~TCharonWin(私有析構(gòu)函數(shù))~TCharonWin();此析構(gòu)函數(shù)刪除ifstream(*if,要顯示的文件)和Tfont(*dispFont,在底部顯示窗口中顯示用的字體)的事例。20SetupWindow(私有方法)voidSetupWindow();此函數(shù)重寫祖函數(shù)SetupWindow()。在調(diào)用基礎(chǔ)函數(shù)后,它刷新狀態(tài)條,然后核查或解除核查二個(gè)菜單項(xiàng)。被操作的菜單項(xiàng)如下最后,它作定時(shí)測(cè)試以計(jì)算delay_ms的數(shù)值。為進(jìn)行此測(cè)試,它從系統(tǒng)中取得當(dāng)前的報(bào)時(shí)信號(hào),然后調(diào)用以一大數(shù)作參數(shù)的Delay()。當(dāng)它返時(shí)時(shí),它再次從系統(tǒng)中取得當(dāng)前的報(bào)時(shí)信號(hào)。此系統(tǒng)報(bào)時(shí)信號(hào)與以前的系統(tǒng)報(bào)時(shí)信號(hào)之差是當(dāng)Delay()在運(yùn)行時(shí)要經(jīng)過(guò)的報(bào)時(shí)信號(hào)數(shù)。作為參數(shù)賦與Delay()的原來(lái)的數(shù)被報(bào)時(shí)信號(hào)之差除是必須賦與Delay()的新數(shù)值以使它延時(shí)1毫秒。用偽碼來(lái)作文字表達(dá),即origTick=GetoriginalclocktickfromsystemcallDelay()witharbitrarylargenumberndelay-ms=n/(clockticknow-origTick)21CanClose(私有方法)BOOLCanClose();此函數(shù)重寫祖函數(shù)。首先它調(diào)用基礎(chǔ)的CanClose(),如果因某種原因不能關(guān)閉主窗口時(shí),此函數(shù)返回。把一些數(shù)值保存到文件初始化文件CHARON.INI中。其中有窗口寬度和高度。然而,本次作業(yè)結(jié)束時(shí)的窗口坐標(biāo)可能不是下次作業(yè)開始時(shí)的實(shí)際坐標(biāo)。其原因是在暫停方式期間,即使斷開BrowserWindow選項(xiàng),仍然彈出頂部顯示窗口。需要進(jìn)行核查使得用戶標(biāo)志(topOn)與當(dāng)前的窗口狀態(tài)(hasTopPane)一致。如果斷開用戶的設(shè)置而當(dāng)前有頂部顯示窗口,則進(jìn)行對(duì)ReconfigureWindow()的調(diào)用以在取坐標(biāo)之前改變主窗口的尺寸。下列表格表示保存列CHARON.INI中的各個(gè)變量此函數(shù)然后請(qǐng)求WINHELP以便結(jié)束。在各正常情況下,在CanClose()中返回TRUE導(dǎo)致應(yīng)用程序退出。但是,在本應(yīng)用程序中,CanClose()可能在函數(shù)FlashLoop()內(nèi)被激活。因此,調(diào)用IsFlashing()以了解是否已是這種情況。如果是,則設(shè)置一標(biāo)志(將flashing設(shè)定到QUIT),然后CanClose()返回FALSE以告知FlashLoop()結(jié)束本應(yīng)用程序(FlashLoop()調(diào)用APIPostQuitMessage()以作此事,因此將繞過(guò)任何對(duì)CanClose()的進(jìn)一步調(diào)用)。如果不在進(jìn)行閃現(xiàn),CanClose())作正常退出。注意,如果在進(jìn)行閃現(xiàn)期間已經(jīng)通知CanClose()關(guān)閉,它就不能返回TRUE。這將導(dǎo)致一保護(hù)出錯(cuò)。22SetupPanes(私有方法)voidSetupPanes(BOOLexpand);此函數(shù)改變頂部顯示窗口和底部顯示窗口的比例大小。參數(shù)expand確定頂部顯示窗口應(yīng)當(dāng)作為65%的比例還是作為0%的比例來(lái)顯示。關(guān)于比例的設(shè)定,見OWL的TLayoutWindow。將這些數(shù)值與兩個(gè)顯示窗口相關(guān)聯(lián)。它不調(diào)用祖類的Layout()來(lái)再顯示這些變注意,此函數(shù)將數(shù)值賦給布局尺度并調(diào)用祖類的SetChildLayoutMetric()以化。23ReconfigureWindow(私有方法)voidReconfigureWindow(BOOLexpand);調(diào)用此函數(shù)來(lái)擴(kuò)大和縮小主應(yīng)用窗口。如果參數(shù)expand為TRUE,頂部顯示窗口就以主窗口的65%比例顯示,但是底下的顯示窗口保持同一絕對(duì)尺寸不變。因此主窗口被加大。如果參數(shù)expand為FALSE,則頂部顯示窗口以主窗口的0%比例顯示,而底下的顯示窗口保持同一絕對(duì)尺寸不變。因此主窗口被縮小。做到這點(diǎn)的方法是取父窗口(即主窗口)的窗口尺寸和底下顯示窗口的尺寸。然后通過(guò)與父窗口的當(dāng)前左上坐標(biāo)和當(dāng)前寬度一起調(diào)用MoveWindow()來(lái)改變?cè)摳复翱诘某叽?。高度是父窗口的?dāng)前高度加上底下顯示窗口的高度的那一部分,該部分的計(jì)算如下父窗口高度+/-下部顯示窗口高度*65%/(100-65%)如果準(zhǔn)備對(duì)窗口加大,這部分可以為正;或者如果準(zhǔn)確對(duì)窗口減小,這部分可以為負(fù)。以上計(jì)算只涉及主應(yīng)用窗口的尺寸改變。內(nèi)部二個(gè)顯示窗口尺寸的改變通過(guò)調(diào)用SetupPanes()及TLayoutWindow∷Layout()來(lái)完成。24IsFlashing(私有方法)BOOLIsFlashing();如果底部顯示窗口為正在閃現(xiàn)的文本(即變量flashing具有狀態(tài)FLASHING),則返回TRUE。25SetDisplayFont(私有方法)voidSetDisplayFont(intheight);此函數(shù)由TFlashPane∷Paint()調(diào)用,它創(chuàng)建在底部顯示窗口中顯示文本用的字體。只有當(dāng)變量dispFont為NULL時(shí)才如此,否則此函數(shù)結(jié)束。如果設(shè)置了用戶選項(xiàng)‘a(chǎn)utoSize’,則用參數(shù)height來(lái)創(chuàng)建TFont事例。否則忽視該參數(shù),事例用fontData中的字體尺度來(lái)創(chuàng)建。26DisplayNextLine(私有方法)intDisplayNextLine();此函數(shù)取得并顯示下一字或下幾個(gè)字(這由變量wordCount決定)。它以毫秒為單位返回本行文本必須顯示的時(shí)間。二個(gè)顯示窗口都反映顯示中的變化。調(diào)用事例strIn的函數(shù)GetAFlash()以獲得新一行的文本。在進(jìn)行顯示前,此函數(shù)核查閃現(xiàn)是否已由“pause”或已由“go”起動(dòng)。如果閃現(xiàn)由“go”起動(dòng),此函數(shù)將當(dāng)前的文件位置與用戶選擇塊的終點(diǎn)比較(見事例manyWordsPane的BlockEnd())以檢驗(yàn)本行文本是否位于或超過(guò)用戶終點(diǎn)選擇標(biāo)記之處。如果是如此,不進(jìn)行顯示。在任何情況下,如果此函數(shù)不能獲得更多用以顯示的字,它就調(diào)用PauseFlashing()以停止閃現(xiàn)并調(diào)用事例manyWordsPane的SelectBlock()以對(duì)在頂部顯示窗口中已經(jīng)是用戶原始選擇的塊作標(biāo)記。如果能夠顯示,則文本反映在二個(gè)顯示窗口中。對(duì)于頂部顯示窗口,這通過(guò)調(diào)用事例manyWordsPane的PresentLine()來(lái)解決。對(duì)于底部顯示窗口,這通過(guò)調(diào)用TFLashPane∷RepaintWindow()來(lái)解決。閃現(xiàn)總數(shù)(WordCount)隨GetAFlash()讀出的閃現(xiàn)數(shù)而增加。在此函數(shù)退出之前,計(jì)算在可顯示新一行文本之前必須作出的延時(shí)量。此延時(shí)是Interval加上一額外延時(shí)。如果本行文本是句子的結(jié)束(見IsSentenceEnd()),且如果流中的下一字符是新行(即回車),則本行也是一段的結(jié)束。因此所述額外延時(shí)是段末(rates.cr)或句末(rates.ends)的延時(shí),用其較大的那個(gè)。然而如果本行文本的第一或最后字符是標(biāo)點(diǎn)符號(hào)(見IsPunctuation),則所述額外延時(shí)是正常的標(biāo)點(diǎn)符號(hào)(rates.punctuation)的延時(shí)。27DelayUntilTime(私有方法)VoidDelayUntilTime(UINTxTime)此函數(shù)通過(guò)設(shè)置局部延時(shí)循環(huán)來(lái)智能地使程序暫停一段已知時(shí)間(以毫秒為單位)。如果參數(shù)xTime大于55ms,即大于Windows中的一個(gè)時(shí)鐘周期,它連續(xù)調(diào)用APIGetTickCount()直到符合此延遲時(shí)間或者剩余時(shí)間小于55ms。在多次時(shí)間核對(duì)之間調(diào)用TApplication∷PumpWaitingMessages()以在此函數(shù)等待期間讓給其他應(yīng)用程序(從而避免了凍結(jié))。如果xTime或剩余延遲時(shí)間小于55ms,則調(diào)用成員函數(shù)Delay()以用機(jī)器指令循環(huán)處理來(lái)消磨此時(shí)間量(見Delay)。28FlashLoop(私有方法)BOOLFLashLoop();此函數(shù)是本應(yīng)用程序的核心,由CmGo()和CmPause調(diào)用。大體上說(shuō),它從文件中獲得一行文本、將其顯示、將其消隱并檢查它不處于退出的狀況。首先調(diào)用CmResetWPM()以初始化WPM計(jì)數(shù)值。然后它(通過(guò)調(diào)用IsFLashing())進(jìn)入保證應(yīng)用程序處于閃現(xiàn)方式的循環(huán)。在該閃現(xiàn)方式期間,它調(diào)用事例manyWordsPane的SelectionChanged()以檢查在頂部顯示窗口中的選擇標(biāo)記是否與以前的情況相同。如果不同,則用戶已改變了光標(biāo)或選擇塊的位置。當(dāng)出現(xiàn)此情況時(shí),它獲取起始標(biāo)記并(用ifstream∷seekg())把文件指針改變到具有與所述標(biāo)記相同偏移量的文本位置。然后它調(diào)用DisplayNextLine()以讀出一行文本并將它反映在二個(gè)顯示窗口中。DisplayNextLine()返回在該二顯示窗口能再次更新之前必須花費(fèi)的延時(shí)。此返回值成為調(diào)用休眠一給定期間的DelayUntilTime()的參數(shù)。當(dāng)已經(jīng)作出適當(dāng)?shù)难訒r(shí)后,使底部顯示窗口消隱。做到這點(diǎn)的方法是首先使Strln為零然后為底部顯示窗口調(diào)用能更新并最終調(diào)用TFlashPane∷Paint()的TFlashPane∷RepaintWindow()。調(diào)用DelayUntilTime()來(lái)延遲使底部顯示窗口消隱的設(shè)置時(shí)間rates.blackout。接著,隨著調(diào)用ShowWordsPerMinutes()而更新狀態(tài)條。在延時(shí)具有極小數(shù)值例如完全是零延時(shí)的情況下,本應(yīng)用程序持續(xù)顯示而對(duì)任何WINDOWS消息都不作出反應(yīng)。于是所有其他MSWINDOWS應(yīng)用程序都會(huì)凍結(jié),包括本應(yīng)用程序在內(nèi)。為了避免這種凍結(jié),調(diào)用TApplication∷PumpWaitingMessages()。這種調(diào)用每十五個(gè)循環(huán)進(jìn)行一次,使得WPM計(jì)數(shù)不致太錯(cuò)誤,因?yàn)镻umpWaitingMessages()可占用一些處理的時(shí)間。最后,在再循環(huán)之前,此函數(shù)檢查本應(yīng)用程序是否要退出(變量flashing有數(shù)值QUIT)。如果為真,它隨API的調(diào)用函數(shù)PostQuitMessage()而送出一退出消息并暫停閃現(xiàn),使本次循環(huán)得以結(jié)束。29PauseFlashing(私有方法)VoidPauseFlashing();此函數(shù)設(shè)置標(biāo)志以停止文本的閃現(xiàn)并且在頂部顯示窗口中把二個(gè)選擇標(biāo)記都設(shè)置到如在文件流中的當(dāng)前位置(即撤消對(duì)塊的選擇)。此函數(shù)只在當(dāng)前取消閃現(xiàn)時(shí)工作。30ShowWordsPerMinute(私有方法)VoidShowWordsPerMinute();此函數(shù)調(diào)用成員函數(shù)WordsPerMinute()以獲得當(dāng)前的WPM計(jì)數(shù)值、將其排成C字符串然后調(diào)用TStatusBar∷SetText()以將其寫入狀態(tài)條。31WordsPerMinute(私有方法)UnitWordsPerMinute();此函數(shù)返回當(dāng)前的WPM計(jì)數(shù)值。求得每毫秒字計(jì)數(shù)值的方法是(通過(guò)調(diào)用API的GetTickCountl)取當(dāng)前報(bào)時(shí)信號(hào)計(jì)數(shù)值及在制表開始時(shí)的報(bào)時(shí)信號(hào)計(jì)數(shù)值(initialTick)之差,然后相反地用它除在此其間閱讀的字?jǐn)?shù)。然后將此數(shù)字乘60000以變換成WPM。作為預(yù)防“被零除”出錯(cuò)的措施,把當(dāng)前報(bào)時(shí)信號(hào)與初始報(bào)時(shí)信號(hào)比較,如果二者相同,就不作計(jì)算但是返回零WPM。32EvSize(私有方法)VoidEvSize(UINTsizeType,TSize&size)此函數(shù)重寫祖函數(shù)。它保證在每次出現(xiàn)WM_SIZE消息(即由用戶改變主窗口尺寸)時(shí)刪除顯示字體(dispFont),其方法是刪除并廢棄該字體,以便以后在事例flashpane的函數(shù)Paint()中及最終在SetDisplayFont()中重新創(chuàng)建字體。然后它調(diào)用基類EvSize。33CmFileOpen(私有方法)voidCmFileOpen();此函數(shù)在有打開文件的請(qǐng)求時(shí)被調(diào)用。它使用TData的事例fileData來(lái)創(chuàng)建和執(zhí)行TFileOpenDialog()的事例。如果它返回IDOK,則刪除任何存在的舊文件流,并且用PauseFlashing()停止閃現(xiàn)狀態(tài)。通過(guò)用從TFileOpenDialog()獲得的參數(shù)FileName調(diào)用構(gòu)造函數(shù)ifstream,創(chuàng)建新文件流。如果構(gòu)造成功,則要求頂部顯示窗口閱讀該同一文件。為做到這點(diǎn),調(diào)用事例browserpane的Read()及SetFileName()。然后,用API的調(diào)用函數(shù)SetWindowText()把文件名附加到應(yīng)用程序的窗口標(biāo)題上。然后調(diào)用CmSelectAll()以阻止在頂部顯示窗口中的所有文本并去除水平滾動(dòng)條。如果不能例示ifstream,即不能打開文件,則(用API的MessageBoxI)給出出錯(cuò)對(duì)話框。這種情況應(yīng)該永遠(yuǎn)不出現(xiàn),因?yàn)樵趇fstream打開文件之前,TFileOpenDialog()檢查是否可得到該文件。但是,當(dāng)browserpane試圖調(diào)用Read()以把整個(gè)文件讀入頂部顯示窗口中時(shí),可能失敗。這種情況在待讀入的文件超過(guò)64K時(shí)發(fā)生,因?yàn)轫敳匡@示窗口是標(biāo)準(zhǔn)OWL類對(duì)象TEditFile()的事例(見類TFLashPane)。34CmGO(私有方法)voidCmGo();調(diào)用此函數(shù)以起動(dòng)或重新起動(dòng)閱讀。此函數(shù)只在有文件打開(即ifstream不是NULL)并且閱讀尚非有效(即IsFLashing返回FALSE)時(shí)才進(jìn)行。有時(shí),例如在暫停期間,關(guān)斷頂部顯示窗口的用戶標(biāo)志(即topOn為FALSE),但是實(shí)際上卻顯示該顯示窗口(即hasTopPane為TRUE)。如果出現(xiàn)這種情況,則調(diào)用ReconfigureWindow()以隱蔽頂部顯示窗口。此后,調(diào)用諸函數(shù)以注意是否頂部顯示窗口塊選擇有改變、設(shè)置閃現(xiàn)以重新在塊的起點(diǎn)開始、以及使WPM諸計(jì)數(shù)值變量復(fù)位(見TBrowsePane∷BlockChanged()、CmRestart()及CmResetWPM())。最后它設(shè)置標(biāo)志以表示閃現(xiàn)不是以前用解除暫停鍵起動(dòng)的(即pauseStart為FALSE),然后調(diào)用核心閃現(xiàn)循環(huán)FLashLOOP。35CmSelectAll(私有方法)voidCmSelectAll();在頂部顯示窗口中請(qǐng)求選擇所有文本時(shí)調(diào)用此函數(shù)。它簡(jiǎn)單地調(diào)用browserpane事例的SelectAll()。36CmRestart(私有方法)voidCmRestart();在請(qǐng)求重新起動(dòng)閃現(xiàn)時(shí)調(diào)用此函數(shù)。如果有文件流,就(用PauseFlashing())停止閃現(xiàn)。把文件流重新放到頂部顯示窗口的起始應(yīng)用標(biāo)記的位置上。(用對(duì)SetSelection()的調(diào)用)把API標(biāo)記的起點(diǎn)和終點(diǎn)都設(shè)置到起始的應(yīng)用標(biāo)記位置,使得API塊消失并且‘1’梁也被移動(dòng)到此位置。37CmDelay(私有方法)voidCmDelays()在請(qǐng)求讓用戶編輯延時(shí)率時(shí)調(diào)用此函數(shù)。創(chuàng)建并執(zhí)行延時(shí)率對(duì)話框(見類TDelaysDialog)。如果按壓OK,計(jì)算WPM用的諸變量就被復(fù)位(見CmResetWPM())。38CmNumFlashes(私有方法)voidCmNumFlashes()在請(qǐng)求讓用戶編輯理應(yīng)在底部顯示窗口看到的字的字?jǐn)?shù)時(shí)調(diào)用此函數(shù)。如當(dāng)前閃現(xiàn)數(shù)目的參數(shù)為已知,則創(chuàng)建并執(zhí)行對(duì)話框TFlashesDialog。如果按壓OK,則strln.numFlashes包含此新值。39CmFont(私有方法)voidCmFont();在請(qǐng)求讓用戶選擇用于在底部顯示窗口顯示的字體時(shí)調(diào)用此函數(shù)。創(chuàng)建和執(zhí)行可變字體的公共對(duì)話框(見類TDelaysDialog)。如果按壓OK,則刪除并廢棄當(dāng)前字體(見dispFont)。于是理應(yīng)激勵(lì)TFLashPane∷Paint()以便使用在fontData中由用戶選擇的字體尺度來(lái)重新創(chuàng)建字體。40CmAutoFont(私有方法)voidCmAutoFont在請(qǐng)求讓用戶選擇或取消選擇自動(dòng)改變字體尺寸時(shí)調(diào)用此函數(shù)。這是在交替調(diào)用中把變量autoSize設(shè)置到TRUE或FALSE的雙態(tài)函數(shù)。當(dāng)該變量作雙態(tài)變化時(shí),隨之用CheckMenultem()檢查或解除檢查菜單項(xiàng)。對(duì)于每次調(diào)用,將當(dāng)前顯示字體dispFont刪除并廢棄,使得TFLashPane∷Paint()能以正確尺寸重新創(chuàng)建顯示用字體。41CmTopOn(私有方法)voidCmTopOn();在請(qǐng)求讓用戶接通和斷開頂部顯示窗口的顯示時(shí)調(diào)用此函數(shù)。如果調(diào)用此函數(shù)以接通頂部顯示窗口的顯示并且如果該頂部顯示窗口此前并未顯示(例如在暫停期間),則它用TRUE參數(shù)調(diào)用ReconfigurelWindow()以顯示頂部顯示窗口。同樣,如果調(diào)用此函數(shù)以關(guān)閉頂部顯示窗口的顯示并且如果該頂部顯示窗口的顯示此前并未關(guān)閉,則用FALSE參數(shù)調(diào)用ReconfigureWindow()以“去除”頂部顯示窗口。變量topOn的值是雙態(tài)的,用CheckMenultem()對(duì)菜單項(xiàng)檢查或解除檢查。42IncreaseWord(私有方法)voidIncreaseAWord(SIGNsign);此函數(shù)(以毫秒為單位)計(jì)算兩次閃現(xiàn)之間所需的顯示時(shí)間間隔(見rates.interval)使得WPM速度的變化約為1WPM。注意,當(dāng)顯示時(shí)間間隔已經(jīng)很短時(shí),1毫秒的變化可導(dǎo)致WPM速度的變化大于1WPM。此時(shí),該時(shí)間間隔為一預(yù)置的毫秒MIN_INTERVAL。參數(shù)sign是NEGATIVE或是POSITIVE,它主要確定變化應(yīng)是間隔增大或減小。此函數(shù)首先計(jì)算當(dāng)前的WPM計(jì)數(shù)值,如果它不是零(以搶在處理器“被零除”出錯(cuò)之先),檢查rates.interval應(yīng)在由MIN_INTERVAL和MAX_INTERVAL規(guī)定的范圍之內(nèi)。如果它不在此范圍內(nèi),對(duì)其作修正使此為真。這是為了保持此間隔在可分辨的范圍之內(nèi)。即,在此范圍之外,對(duì)于應(yīng)用程序的用戶來(lái)說(shuō),覺察不到速度上的差別。進(jìn)行把當(dāng)前(已修正的)interval除以當(dāng)前WPM的計(jì)算以找出interval必須增加或減少的量。如果此變化(變化量)太小,(即小于零),則簡(jiǎn)單地把間隔加1或減1。在把此變化加到當(dāng)前interval之前,檢查新間隔不應(yīng)小于MININTERVAL,并且最重要的是檢查新間隔不應(yīng)回繞(因?yàn)閕nterval是無(wú)符號(hào)整數(shù))。如果它小于MIN_INTERVAL,就將interval設(shè)為該值。最后,調(diào)用CmResetWPM()以為進(jìn)行新的WPM計(jì)數(shù)而將各變量復(fù)位。43CmlncreaseRate(私有方法)voidCmIncreaseRate();在請(qǐng)求讓用戶增加閃現(xiàn)速度時(shí)調(diào)用此直接插入的函數(shù)。它簡(jiǎn)單地用參數(shù)POSITIVE調(diào)用IncreaseAWord()以表示正變化量。44CmDecreaseRate(私有方法)voidCmDecreaseRate();在請(qǐng)求讓用戶減少閃現(xiàn)速度時(shí)調(diào)用此直接插入的函數(shù)。它簡(jiǎn)單地用參數(shù)NEGATIVE調(diào)用IncreaseAWord()以表示負(fù)變化量。45CmPause(私有方法)voidCmPause();在請(qǐng)求停止或開始閃現(xiàn)時(shí)調(diào)用此函數(shù)。如果有文件流并且IsFlashing()返回TRUE,則閃現(xiàn)暫停。否則,如果有文件流并且IsFlashing()返回FALSE,則閃現(xiàn)重新開始或者被解除暫停。在暫停情況下,如果當(dāng)前無(wú)頂部顯示窗口(即hasTopPane為FALSE),則經(jīng)由ReconfigureWindow()接通頂部顯示窗口的顯示。調(diào)用TBrowserPane∷Scroll()以便頂部顯示窗口許多次地向左滾動(dòng),因而保證能看到如果此前看不到的第1列。調(diào)用TBrowserPane∷PresentWord()以將兩個(gè)API標(biāo)記聚集在一起以反映當(dāng)前的文件位置。然后作出對(duì)PauseFlashing()的調(diào)用以使閃現(xiàn)處理暫停,把當(dāng)前的系統(tǒng)報(bào)時(shí)信號(hào)存儲(chǔ)在變量PauseTick中以便以后用于考察在此暫停期間已走過(guò)的報(bào)時(shí)信號(hào)數(shù)。在解除暫停的情況下,如果撤去用戶的頂部顯示窗口的顯示選擇(即topOn為FALSE)并且當(dāng)前有頂部顯示窗口(即hasTopPane為TRUE),則通過(guò)調(diào)用ReconfigureWindow()來(lái)“去除”頂部顯示窗口。如有必要,調(diào)用TBrowserPane∷BlockChanged()以重新標(biāo)記文本的當(dāng)前行。為了從WPM計(jì)數(shù)值中排除在暫停期間已走過(guò)的報(bào)時(shí)信號(hào)數(shù),應(yīng)使開始WPM計(jì)數(shù)的報(bào)時(shí)信號(hào)(即initialTick)提前。這靠(通過(guò)調(diào)用GetTickCount())取得當(dāng)前的報(bào)時(shí)信號(hào)計(jì)數(shù)值并且減去暫停期間的報(bào)時(shí)信號(hào)計(jì)數(shù)值(即PauseTick)來(lái)完成。把變量pauseStarted設(shè)置到TRUE然后調(diào)用FLashLoop()以恢復(fù)閃現(xiàn)。46CmRestWPM(私有方法)voidCmResetWPM();在請(qǐng)求對(duì)與WPM計(jì)數(shù)值計(jì)算有關(guān)的諸變量復(fù)位時(shí)調(diào)用此函數(shù)。使迄今已閃現(xiàn)的字?jǐn)?shù)(即wordCount)歸零,把從字計(jì)數(shù)值零起的在第一個(gè)閃現(xiàn)開始時(shí)的報(bào)時(shí)信號(hào)用GetTickCount()設(shè)置到當(dāng)前報(bào)時(shí)信號(hào)。47CmHelpOnHelp(私有方法)voidCmHelpOnHelp();在請(qǐng)求用幫助文件WINHELP.HLP調(diào)用WNHELP.EXE時(shí)調(diào)用此函數(shù)。48CmAbout(私有方法)voidCmAbout();在請(qǐng)求調(diào)用“About”對(duì)話框時(shí)調(diào)用此函數(shù)。類TDelaysDialog21c是對(duì)話框類,它從TDialog中派生。該對(duì)象從用戶獲得各種延時(shí)率。該類的成員如下1rates(私有變量)TCharonWin∷TDelayRate&rates;這是在其包含各種延時(shí)率的父類型中的類型為TDelaysDialog的結(jié)構(gòu)變量的基準(zhǔn)(見在類TCharonWin內(nèi)的已嵌套結(jié)構(gòu)TDelayRate)。2TDelaysDialog(公共構(gòu)造函數(shù))TDelaysDialog(TWindow*parent,TCharonWin∷TDelayRate_rates)此構(gòu)造函數(shù)創(chuàng)建對(duì)話對(duì)象。參數(shù)是其父指針并且是其父中的結(jié)構(gòu)變量的基準(zhǔn)。3SetupWindow(私有函數(shù))voidSetupWindow();此函數(shù)重寫在祖類中的函數(shù)。它調(diào)用SetDlgltemlnt()以設(shè)置在已嵌套結(jié)構(gòu)TDelayRate中的變量interval、blackout、punctuations、ends、cr。4CanClose(私有函數(shù))BOOLCanClose();此函數(shù)重寫在祖類中的函數(shù)。它調(diào)用GetDlgltemlnt()以把其諸編輯框的內(nèi)容取入變量結(jié)構(gòu)TDelayRate。最后,它返回作為基的CanClose的已返回值。類TFlashesDialog是對(duì)話框類,它從TDialog中派生。此對(duì)象從用戶獲得每閃現(xiàn)一次的字?jǐn)?shù)。此類的成員為<p>1numFlashes(私有變量)UINT&numFlashes;這是在其包含每次閃現(xiàn)的字?jǐn)?shù)的父TCharonWin中的變量的基準(zhǔn)。2TFlashesDialog(公共構(gòu)造函數(shù))TFlashesDialog(TWindow*parent,UINT&-numFlashes);此構(gòu)造函數(shù)創(chuàng)建對(duì)話對(duì)象。參數(shù)是其父指針并且是在其父中的變量numFlashes的基準(zhǔn)。3SetupWindow(私有函數(shù))voidSetupWindow();此函數(shù)重寫在祖類中的函數(shù)。它調(diào)用SetDlgltemlnt()以把變量numFlashes置入在資源編輯器中定義的編輯框。4.CanClose(PrivateFunction)BOOLCanClose();此函數(shù)重寫在祖類中的函數(shù)。如果基CanClose()返回TRUE,則它調(diào)用GetDlgltemlnt()以將其編輯框的內(nèi)容取入變量numFlashes。如果numFlashes大于零,則此函數(shù)返回TRUE,即同意關(guān)閉對(duì)話框。類TBrowserPane21e從TEditFile中派生出。祖類包括編輯窗口,并照管通過(guò)調(diào)用API的GetSeletion()可獲得諸偏移位置的塊選擇。這里稱這些偏移位置為“API標(biāo)記”。TBrowserPane實(shí)現(xiàn)稱為“應(yīng)用標(biāo)記”的兩個(gè)附加標(biāo)記。其用途是記住原來(lái)由API標(biāo)記記下的用戶的塊選擇的偏移值,使得雖然API標(biāo)記可能用于標(biāo)記某些別的塊但是原來(lái)的選擇仍然被記錄下來(lái)。如有可能,此類還照管包含這些副標(biāo)記的文本行的對(duì)中。此類的函數(shù)如下</tables>1blkBegin(私有變量)UINTblkBegin;這是起始應(yīng)用標(biāo)記。它記錄用戶想開始閱讀文本的位置。當(dāng)它檢測(cè)到用戶通過(guò)鼠標(biāo)指針或鍵盤光標(biāo)對(duì)內(nèi)部標(biāo)記部分作出明顯改變時(shí),用父窗口TCharonWin經(jīng)由成員函數(shù)RememberBlock()改變此變量的數(shù)值。只在應(yīng)用程序試圖在TCharonWin∷CmGo()及TCharonWin∷Pause()中重新起動(dòng)閃現(xiàn)時(shí)才作此檢測(cè)。2blkEnd(私有變量)UINTblkEnd;如同blkBegin的情況,這是結(jié)束應(yīng)用標(biāo)記。3numberMidLines(私有變量)intnumberMidLines;這是TBrowserPane的事例能以其當(dāng)前窗口尺寸持有的文本行數(shù)的一半。4lastSelectionPos(私有變量)UINTlastSelectionPos;此變量標(biāo)記了相對(duì)于文件起點(diǎn)的閃現(xiàn)文本的起始偏移值。其用途是在閃現(xiàn)進(jìn)行期間記錄起始的API標(biāo)記,使得能夠在閃現(xiàn)過(guò)程中識(shí)別由用戶通過(guò)鼠標(biāo)指針或鍵盤光標(biāo)對(duì)塊選擇的任何再定位。5TBrowserPane(公共構(gòu)造函數(shù))TBrowserPane(Twindow*parent);此函數(shù)構(gòu)造使lastSelectionPos初始化到零的瀏覽窗口。它還計(jì)算半個(gè)窗口理應(yīng)允許的行數(shù)并將其存儲(chǔ)在變量numberMidLines中。6PresentLine(公共函數(shù))voidPresentLine(UINTstartPos,UINTendPos);此函數(shù)加亮在startPos及endPos范圍內(nèi)包含的字或諸字,并且如有可能將文本的已選塊位置于窗口中部。首先此函數(shù)調(diào)用SetSelection()以選擇從而加亮所述字或諸字。它記錄在lastSelectionPos中的選擇塊的起點(diǎn)使得它能識(shí)別出用戶已顯然再定位了(如作了任何再定位的話)的選擇塊。為了將選擇塊置于窗口中部,此函數(shù)使窗口中行數(shù)的一半(即numberMidLines)與窗口中首行的行號(hào)(通過(guò)調(diào)用GetFirstVisibleLine())相加,從而獲得相對(duì)于整個(gè)文件的文本中間行的絕對(duì)行號(hào)。它調(diào)用GetLineFromPos()以取得正被選擇的行號(hào)并從其減去上述絕對(duì)行號(hào)以獲得必須滾動(dòng)的行數(shù),使所述選擇塊出現(xiàn)在窗口中部。7GetSelectionStart(公共函數(shù))UINTGetSelectionStart();此函數(shù)返回起始的API標(biāo)記。它調(diào)用基函數(shù)GetSlection()、廢除結(jié)束標(biāo)記及返回起始標(biāo)記。8BlockBegin(公共函數(shù))UINTBlockBegin();此重載的直接插入函數(shù)返回起始的應(yīng)用標(biāo)記blkBegin。9BlockBegin(公共函數(shù))voidBlockBegin(UINTval);此重載的直接插入函數(shù)把起始的應(yīng)用標(biāo)記blkBegin設(shè)置為val中的數(shù)值。10BlockEnd(公共函數(shù))UINTBlockEnd();此重載的直接插入函數(shù)設(shè)置結(jié)束的應(yīng)用標(biāo)記blkEnd。11BlockEnd(公共函數(shù))voidBlockEnd(UINTval)此重載的直接插入函數(shù)把結(jié)束的應(yīng)用標(biāo)記blkEnd設(shè)置為val中的數(shù)值。12IsSelectionChanged(公共函數(shù))BOOLIsSelectionChanged();此直接插入函數(shù)測(cè)試在閃現(xiàn)進(jìn)行期間用戶是否已對(duì)光標(biāo)或塊選擇作了再定位。做到這點(diǎn)的方法是測(cè)試在閃現(xiàn)進(jìn)行期間由起始API標(biāo)記當(dāng)前選擇的位置與以前存儲(chǔ)在lastSelectionPos中的位置相同。如該測(cè)試為TRUE,則未作過(guò)再定位。13RememberBlock(公共函數(shù))voidRememberBlock();此函數(shù)通過(guò)把API塊標(biāo)記存儲(chǔ)在blkBegin和blkEnd中來(lái)記憶當(dāng)前被選擇的塊。如果二個(gè)API標(biāo)記都在同一位置上,即在窗口中沒有已選塊,則什么事也不做。14SelectBlock(公共函數(shù))voidSelectBlock();此直接插入函數(shù)用變量blkBegin及blkEnd調(diào)用SetSelect()以設(shè)置整個(gè)閱讀塊。因此,各API標(biāo)記被賦與和各應(yīng)用標(biāo)記相同的數(shù)值。15SelectAll(公共函數(shù))voidSelectAll();此函數(shù)通過(guò)把blkBegin設(shè)置成首字符(即零)和把blkEnd設(shè)置成可能的末字符(即十六進(jìn)制數(shù)FFFF)而選擇包含在窗口中的整個(gè)文本。然后它調(diào)用SetSelection()以設(shè)置塊。16SetupWindow(私有函數(shù))voidSetupWindow();此直接插入函數(shù)重寫其祖先。其用途是禁止在此窗口內(nèi)編輯。此函數(shù)首先調(diào)用基SetupWindow(),然后用參數(shù)TRUE調(diào)用SetReadOnly()以禁止寫。17EvSize(私有函數(shù))voidEvSize(UINTsizeType,Tsize&size);此直接插入函數(shù)重寫其祖先。其用途是捕獲一窗口改變尺寸事件(即WM_SIZE)及調(diào)用CalcMiddleLine()。做到這點(diǎn)的方法是取底部和頂部之間的窗口的客戶尺寸,將其除以包括鉛條的字體高度。類TFLashPane21f從TWindow中派生,此外還管理顯示字或諸顯示字。本行文本及其顯示字體取自其父窗口TCharonWin。此類的成員函數(shù)如下1parentWin(私有函數(shù))TCharonWin*parentWin;這是指向父窗口TCharonWin的指針,它從該父窗口取得關(guān)于要顯示的文本和顯示字體的信息。2TFLashPane(公共構(gòu)造函數(shù))TFLashPane(TCharonWin*parent);此函數(shù)構(gòu)造一文本閃現(xiàn)窗口,用父窗口(即TCharonWin)的地址來(lái)初始化parentWin。3RepaintWindow(公共函數(shù))voidRepaintWindow();此直接插入函數(shù)調(diào)用祖類的Invalidate()和UpdateWindow()以立即重新繪制窗口的客戶區(qū)。4Paint(私有函數(shù))voidPaint(TDC&dc,BOOL,7Rect&);此函數(shù)重寫每當(dāng)準(zhǔn)備重新繪制窗口時(shí)調(diào)用的祖函數(shù)。它在parentWin的strln中選擇父的顯示字體并繪制字或諸字。此函數(shù)首先取得其窗口客戶尺寸并確定理應(yīng)最適合該窗口的字體是窗口顯示高度(即底減頂)的字體的一半。它用此參數(shù)通過(guò)調(diào)用TCharonWin∷SetDisplayFont()來(lái)從其父中取得該顯示字體。它(通過(guò)用TA_CENTER調(diào)用SetTextAlign)把文本插入基線設(shè)置到它將顯示的文本的中心,此字體的背景是窗口的背景(通過(guò)用TRANSPARENT調(diào)用SetBkMode),此字體的顏色是在父的fontData.Color中定義的顏色。它通過(guò)調(diào)用TextOut()來(lái)進(jìn)行文本的寫入。最后,類Tsthng21g從祖類string中派生,此外,它處理閱讀來(lái)自輸入流的(由變量TCharonWin∷numFlashes確定的)一些字此類的成員函數(shù)如下1numFlashes(公共變量)UINTnumFlashes;這是要從輸入文件流中閱讀的、由用戶確定的字?jǐn)?shù)。由此類成功閱讀的字?jǐn)?shù)將由此類來(lái)保持并最終用于在底部顯示窗口中顯示。這是公共變量,可直接根據(jù)類TCharonWin來(lái)改變。2GetAFlash(公共函數(shù))intGetAFlash(istream_FAR&is,UINT&startPos,UINT&endPos);此函數(shù)從盤文件流中閱讀用戶規(guī)定的字?jǐn)?shù)并返回實(shí)際閱讀的字?jǐn)?shù)。它首先清除其API字符串緩沖器然后重復(fù)地調(diào)用GetAppendToken()以從文件流istream(is)中取得一字,直到達(dá)到(由變量numFlashes確定的)數(shù)目。實(shí)際閱讀的字?jǐn)?shù)可以是小于或等于該變量的任何數(shù)(見成員函數(shù)GetAppendToken()以了解更多細(xì)節(jié))。已進(jìn)行閱讀的文件流起始位置返回在startPos中,而結(jié)束位置返回在endPos中。3GetAppendToken(公共函數(shù))FLASH_STATUSGetAppendToken(istream_FAR&is);此函數(shù)從文件istream(is)中讀出一字并將其附加到其API字符串緩沖器中。在不成功讀出時(shí),它返回UNSUCCESSFUL的狀態(tài),在成功讀出時(shí)返回SUCCESSFUL,在已成功讀出但是該字的最后字符為標(biāo)點(diǎn)符號(hào)或句結(jié)束號(hào)時(shí)返回END_OF_FLASH。END_OF_FLASH狀態(tài)告知調(diào)用此函數(shù)的函數(shù)(即GetAFlash())在沒有屏幕顯示下不應(yīng)再調(diào)用此函數(shù),因?yàn)槠鋬?nèi)部的字符串緩沖器已準(zhǔn)備好。如果一字被成功地讀出,就將其附加在其內(nèi)部字符串緩沖器的末尾。然而,在進(jìn)行附加之前,如果內(nèi)部字符串緩沖器包含任何內(nèi)容(即上一字),則在附加當(dāng)前字之前把一個(gè)空格符(即ASCII32)附加在此最后字之后。字是一種標(biāo)識(shí),其定義為在其前后具有空檔的一些字符(見string類的read_token())。在全局函數(shù)IsPunctuation()內(nèi)的常數(shù)PUNCTUATION_LIST是一組表示字的開始或結(jié)束的非終句標(biāo)點(diǎn)符號(hào)。在全局函數(shù)IsSentenceEnd()內(nèi)的常數(shù)SENTENCE_END_LIST是一組表示句子結(jié)束的標(biāo)點(diǎn)符號(hào)?,F(xiàn)在來(lái)考慮非類函數(shù)23,它們是1GetProfilelntUINTGetProfileInt(char*keyName,UINTdefVal);此函數(shù)從[CheronReader]部下面的文件CHARON.INI中取得一整數(shù)值。entryName是CHARON.INI中的入口名,defVal是當(dāng)這種入口不存在時(shí)的缺省值。它調(diào)用名稱為GetPrivateProfilelnt()的API。2WriteProfilelntvoidWriteProfileInt(char*keyName,UINTval);此函數(shù)把一整數(shù)值寫入[CharonReader]部下面的文件CHARON.INI。entryName是CHARON.INI中的入口名,val是此函數(shù)將要寫入的數(shù)值。其第一次調(diào)用首先把該數(shù)值變換成字符串,然后它調(diào)用名稱為WritePrivateProfileString()的API。3DelayvoidDelay(UINTfactor);此函數(shù)作由嵌套的for語(yǔ)句組成的局部循環(huán)以消磨處理器時(shí)間。參數(shù)factor確定此函數(shù)必須作的循環(huán)次數(shù)。此次數(shù)可以是任意的,但是在應(yīng)用開始時(shí)計(jì)算它有助于確定使此函數(shù)以毫秒級(jí)運(yùn)行的次數(shù)(見TCharon∷SetupWindow())。MSWindows應(yīng)用程序通常不使用(尤其不通過(guò)調(diào)用TApplication∷PumpWaitingMessages()而使用)局部延時(shí)循環(huán),因?yàn)榇朔椒赡軐?dǎo)致其他Windows應(yīng)用程序甚至其本身的凍結(jié)。然而,此應(yīng)用程序有時(shí)必須具有比55ms更精細(xì)的報(bào)時(shí)信號(hào)分辨力。當(dāng)需要這種粒度時(shí),就使用此函數(shù)(關(guān)于如何有條件地實(shí)現(xiàn)延時(shí),詳見TCharonWin∷DelayUntilTime)。4IsPunctuationBOOLIsPunctuation(charmark);如果參數(shù)mark是在已定義的標(biāo)點(diǎn)符號(hào)列表PUNCTUATION_LIST中的字符,則此函數(shù)返回TRUE。5IsSentenceEndBOOLIsSentenceEnd(charmark);如果參數(shù)mark是在已定義的句子終結(jié)符列表SENTENCE_END_LIST中的字符,則此函數(shù)返回TRUE。根據(jù)對(duì)各類及其成員函數(shù)的概略說(shuō)明,指出了本系統(tǒng)的一些重要方面,這些方面通過(guò)對(duì)本計(jì)算機(jī)程序?qū)嶋H操作的描述將得到更好的理解?,F(xiàn)在來(lái)對(duì)總的屏幕布局及根據(jù)用戶對(duì)計(jì)算機(jī)程序操作的看法進(jìn)行此描述。相應(yīng)地將參照?qǐng)D3的計(jì)算機(jī)程序功能性流程圖和圖4至18的顯示屏幕布局。最初,通過(guò)運(yùn)行如前所述的已由程序編譯的可執(zhí)行文件‘.exe’及各動(dòng)態(tài)鏈接庫(kù)來(lái)執(zhí)行本計(jì)算機(jī)程序。這將初始地調(diào)用TCharApp類函數(shù)21a并且通過(guò)調(diào)用TCharonWin類函數(shù)21b、TBrowserPane類函數(shù)21e和TFlashPane類函數(shù)21b建立起圖4所示的屏幕。由圖4可見,屏幕具有標(biāo)準(zhǔn)的WINDOWS(注冊(cè)商標(biāo))布局,包括標(biāo)題條31、菜單條33、工具條35、瀏覽顯示窗口37、閃現(xiàn)顯示窗口39、狀態(tài)條41、控制菜單框43和在45處概略顯示的最小化、最大化及恢復(fù)按鈕。這些初始化用的函數(shù)的調(diào)用由圖3的圓101表示。如前所述,菜單條包括菜單項(xiàng)目‘File’、‘Speed’、‘Read’、‘Options’。工具條35包括新文檔按鈕47、起動(dòng)按鈕49、增大掃描速度按鈕51、減小掃描速度按鈕53及暫停按鈕55。瀏覽顯示窗口37包括垂直滾動(dòng)條57及水平滾動(dòng)條59。在本實(shí)施例中,瀏覽顯示窗口設(shè)置到屏幕尺寸的約65%,閃現(xiàn)顯示窗口設(shè)置到35%。狀態(tài)條41包括對(duì)由程序掃描的每分鐘字?jǐn)?shù)的累進(jìn)計(jì)數(shù)以及文本個(gè)別部分以毫秒為單位顯示的時(shí)段或持續(xù)時(shí)間。如圖3的圓102所示,通過(guò)如圖5所示地打開‘File’菜單及通過(guò)如圖6所示地選擇建立‘Open’對(duì)話框用的‘Open’選項(xiàng)而選擇文件。應(yīng)當(dāng)注意,在‘File’菜單下,通過(guò)選擇‘Exit’選項(xiàng),也提供了退出程序的工具,這也在圖5中示出。在‘Open’對(duì)話框中,用已知方法選擇文本文件,在本實(shí)施例情況下,所選的文件為‘readtest.txt’。對(duì)所需文件的選擇把此文件的文本的第一個(gè)、較大的部分放在瀏覽窗口37中,如圖7所示。在經(jīng)受程序的各控制參數(shù)的設(shè)置之后,程序已準(zhǔn)備好進(jìn)行閱讀。控制參數(shù)的設(shè)定由圖3的圓103表示,通過(guò)菜單項(xiàng)‘Options’實(shí)現(xiàn)。如圖8所示,有三個(gè)適當(dāng)?shù)倪x項(xiàng),即‘Delays’、‘Font’及‘Numberofflashes’,其中的每一個(gè)選項(xiàng)都有與之相關(guān)的對(duì)話框,還有兩個(gè)雙態(tài)選項(xiàng)即‘Autosizefont’及‘Browserwindow’。第一選項(xiàng)‘Delays’調(diào)用TDelaysDialog類函數(shù)21c并如圖9所示地建立一對(duì)話框,該對(duì)話框列出各控制參數(shù)‘WordDisplayTime’、‘Blackscreenbetweenwords’、‘Punctuation’、‘SentemceEnd’及‘ParagraphEnd’?!甒ordDisplayTime’參數(shù)規(guī)定在屏幕的閃現(xiàn)顯示窗口中同一位置上顯示已定位文本的個(gè)別部分的顯示時(shí)間或持續(xù)期,此數(shù)值是在狀態(tài)條41中‘Interval’下出現(xiàn)的同一數(shù)值?!瓸lankscreenbetweenwords’參數(shù)規(guī)定在閃現(xiàn)顯示窗口39中的各相繼字顯示之間出現(xiàn)的消隱時(shí)間間隔?!甈unctuation’參數(shù)規(guī)定當(dāng)文本的第一部分包含如逗號(hào)、引號(hào)之類的標(biāo)點(diǎn)符號(hào)時(shí)在閃現(xiàn)顯示窗口顯示文本的一個(gè)別部分之后到顯示文本的下一個(gè)別部分之間出現(xiàn)的消隱時(shí)間間隔?!甋entenceEnd’參數(shù)規(guī)定當(dāng)?shù)竭_(dá)由句號(hào)、驚嘆號(hào)、問(wèn)號(hào)等表示的句末時(shí)正在顯示的文本的各相繼個(gè)別部分之間出現(xiàn)的消隱時(shí)間間隔。最后,‘ParagraphEnd’參數(shù)規(guī)定在段落末顯示文本一個(gè)別部分之后到在下一段落初顯示文本的下一個(gè)別部分之間出現(xiàn)的消隱時(shí)間間隔?!瓼ont’選項(xiàng)建立如圖10所示的從標(biāo)準(zhǔn)動(dòng)態(tài)鏈接庫(kù)之一獲得的‘Font’對(duì)話框,據(jù)此以已知方法選擇字體。當(dāng)選擇‘Flashes’選項(xiàng)后,它調(diào)用TFlashesDialog類函數(shù)21d,并建立如圖11所示的對(duì)話框。這就提供了控制參數(shù)的設(shè)定,用于規(guī)定在任何一次中閃現(xiàn)的字?jǐn)?shù),即在閃現(xiàn)顯示窗口39待定位的文本個(gè)別部分中出現(xiàn)的字?jǐn)?shù)。至于‘Autosizefont’選項(xiàng),如圖8所示,選中該選項(xiàng)就調(diào)用一函數(shù)自動(dòng)地確定在閃現(xiàn)顯示窗口39中已顯示的文本部分的字體尺寸。在本實(shí)施例中,字體自動(dòng)地缺省為以尺寸24間距的正規(guī)字體風(fēng)格表示的truetypeTimesNewRoman。為了改變此設(shè)定,必須去消選擇該‘Autosizefont’選項(xiàng),并如前述在字體選項(xiàng)下為字體選擇各新的控制參數(shù)。當(dāng)選擇‘Browserwindow’選項(xiàng)后,它調(diào)用一函數(shù)以用前述的窗口比例如圖4所示地使瀏覽顯示窗口37及閃現(xiàn)顯窗口39顯示出來(lái)。當(dāng)去消選擇該選項(xiàng)時(shí),只顯示占領(lǐng)整個(gè)顯示窗口的閃現(xiàn)顯示窗口39,如圖12和13所示。這些函數(shù)由圓105表示。在設(shè)定可設(shè)置的各控制參數(shù)之后,就可調(diào)用閱讀程序以開始閱讀文本。程序的調(diào)用可通過(guò)‘Read’菜單、起動(dòng)按鈕49或加速鍵來(lái)實(shí)現(xiàn)。在‘Read’菜單的情況下,其下拉菜單如圖14所示提供三個(gè)選項(xiàng),第一個(gè)是‘Go’,第二個(gè)是‘Restart’,第三個(gè)是‘Selectall’。選擇‘Go’選項(xiàng)或按壓加速鍵G將調(diào)用函數(shù)以開始文本文件的閱讀。作為另一種選擇,通過(guò)按壓enter鍵或起動(dòng)按鈕49來(lái)調(diào)用同一函數(shù)。在程序已開始閱讀之后選項(xiàng)‘Restart’有效,一旦選擇它就調(diào)用一函數(shù)以把閱讀程序返回到其起始狀態(tài)并等待命令。此選項(xiàng)也可通過(guò)按壓鍵盤的加速鍵‘s’或control及home鍵來(lái)調(diào)用。選項(xiàng)‘Selectall’是規(guī)定在初始化時(shí)待讀文件的塊的缺省控制參數(shù),據(jù)此選擇閱讀在打開的文件內(nèi)的全部文本。不久將說(shuō)明對(duì)塊的規(guī)定?!甋electall’選項(xiàng)的用途在已選擇一塊待閱讀的文本之后希望回到閱讀整個(gè)文本文件時(shí)有效。此選項(xiàng)也可通過(guò)按壓加速鍵‘S’來(lái)調(diào)用。對(duì)塊的規(guī)定在TBrowserPane類函數(shù)21e下進(jìn)行,由圖3的圓104表示。如上所述,對(duì)塊的規(guī)定具有一缺省的設(shè)定,即打開的整個(gè)文件,所以此函數(shù)在初始化之后直接被調(diào)用。但是可以改變對(duì)塊的規(guī)定,使得通過(guò)設(shè)定在瀏覽顯示窗口內(nèi)顯示的文本的起始和結(jié)束應(yīng)用標(biāo)記而只閱讀文件的特定段或句。通過(guò)使用鼠標(biāo)按鈕把“l(fā)”梁光標(biāo)放在文本的希望的開始位置上、按住左鼠標(biāo)按鈕把‘l’梁拖曳到待讀文本的結(jié)束位置,就方便地進(jìn)行了對(duì)塊的規(guī)定。當(dāng)拖曳‘l’梁時(shí),已選擇的文本塊逐漸加亮直至規(guī)定了整個(gè)塊,如圖15所示。正在閱讀測(cè)試文件時(shí),如有需要,可重新安放規(guī)定該塊的起始應(yīng)用標(biāo)記,如圓109所示。此外,在計(jì)算機(jī)程序讀出文本的已加亮塊之后,一旦到達(dá)結(jié)束應(yīng)用標(biāo)記,程序調(diào)用一函數(shù)以加亮該文本塊,如圓116所示。除了可設(shè)置的諸控制參數(shù)之外,‘Speed’菜單提供改變某些控制參數(shù),即由圓111表示的增大或減小閱讀速度,即改變字顯示時(shí)間和消隱時(shí)間間隔,還提供由圓112表示的重新設(shè)置每分鐘字?jǐn)?shù)的計(jì)算,其結(jié)果顯示在屏幕的狀態(tài)條41中以重新設(shè)置累計(jì)的每分鐘字?jǐn)?shù)的閱讀率。與‘Speed’菜單項(xiàng)相關(guān)的下拉菜單在圖16中示出。‘Increase’和‘Decrease’速度選項(xiàng)分別與增大和減小速度按鈕51和53相聯(lián)以分別調(diào)用有關(guān)的直接插入函數(shù)CmlncreaseRate和CmDecreaseRate,此二函數(shù)又調(diào)用IncreaseAWord,所有這些都在以前涉及類TCharonWin時(shí)作了說(shuō)明。因此對(duì)于短的顯示時(shí)間,通過(guò)選擇‘Increase’,在每次選擇‘Increase’選項(xiàng)或按壓增速按鈕51時(shí)‘WordDisplayTime’就減少1毫秒。相反,在每次選擇‘Decrease’選項(xiàng)或按壓減速按鈕53時(shí),‘WordDisplayTime’就增大1毫秒。另一方面,對(duì)于長(zhǎng)的顯示時(shí)間,‘WordDisplayTime’用相當(dāng)于1WPM變化的時(shí)段來(lái)減量或增量。這些函數(shù)由圓113表示。在本實(shí)施例中,這種速度變化并不改變消隱時(shí)段的控制參數(shù)設(shè)定,它保持固定在通過(guò)圖9‘Delays’對(duì)話框確定的設(shè)定值上。選項(xiàng)‘UpdateWPM’調(diào)用函數(shù)CmResetWPM,這由圓108表示,以復(fù)位與計(jì)算每分鐘字?jǐn)?shù)有關(guān)的諸變量。在計(jì)算機(jī)程序正常操作過(guò)程中調(diào)用函數(shù)ShowWordsPerMinute,該函數(shù)又調(diào)用成員函數(shù)WordsPerMinute,二者都是TCharonWin類的成員,它們返回以前述方法計(jì)算的當(dāng)前的每分鐘字計(jì)數(shù)值并在狀態(tài)條41中顯示此計(jì)數(shù)值。因?yàn)閷?duì)CmResetWPM的調(diào)用把各變量復(fù)位到零,在復(fù)位后字計(jì)數(shù)值低的期間在狀態(tài)條中顯示的WPM率明顯地波動(dòng)?!甋peed’菜單的下拉菜單還包括選項(xiàng)‘Pause/Resume’,它相應(yīng)地與暫停按鈕55關(guān)聯(lián)。選擇該‘Pause/Resume’選項(xiàng)或暫停按鈕交替地停止在文本顯示處文本的個(gè)別部分的顯示或停止文本之間的消隱,及起動(dòng)由消隱時(shí)間間隔分開的文本個(gè)別部分的顯示或閃現(xiàn),其方法是調(diào)用也是類TCharonWin的成員的、由圓110表示的函數(shù)CmPause。因此,文本的閱讀可如此地在閱讀操作期間的任何時(shí)間暫?;蚧謴?fù)。如上所述,通過(guò)按壓起動(dòng)按鈕49、選擇`Read′菜單下面的‘Go’選項(xiàng)、或按壓鍵盤的enter鍵來(lái)開始對(duì)已規(guī)定的文本塊的閱讀。這些操作中的任何一個(gè)都調(diào)用也是類TCharonWin的成員的函數(shù)CmGo,而此函數(shù)又隨程序的狀態(tài)而調(diào)用其他函數(shù)。因此函數(shù)CmGo在正常操作下依次以規(guī)定的顯示時(shí)間和以規(guī)定的消隱時(shí)間間隔把文本的個(gè)別和相繼部分放在閃現(xiàn)顯示窗口的同一位置上,所述時(shí)間和所述間隔由上述的適當(dāng)控制面板的設(shè)定來(lái)確定。在選擇瀏覽顯示窗口37與閃現(xiàn)顯示窗口39結(jié)合顯示的情況下,閃現(xiàn)顯示窗口中顯示的文本的個(gè)別部分同時(shí)在瀏覽顯示窗口中加亮,如圖17中所示的字“maintaining”。此函數(shù)也調(diào)用由圓107表示的對(duì)中工具以使文本的每個(gè)個(gè)別部分在閃現(xiàn)顯示窗口內(nèi)橫向?qū)χ校沟梦谋镜拿總€(gè)個(gè)別部分的中心在相同位置。其一例示于圖12和13中,字“the”和“developed”在閃現(xiàn)顯示窗口內(nèi)的中心處顯示;圖17中閃現(xiàn)顯示窗口內(nèi)的字“maintaining”同樣如此。此外,在選擇顯示瀏覽顯示窗口的情況下,所述函數(shù)調(diào)用由圓106表示的對(duì)中滾動(dòng)工具,以自動(dòng)地滾動(dòng)正在瀏覽顯示窗口內(nèi)顯示的文本較大部分的表現(xiàn),并使含有與正在閃現(xiàn)顯示窗口內(nèi)顯示的文本個(gè)別部分相對(duì)應(yīng)的文本的行居中,如圖18所最佳表示。但是應(yīng)當(dāng)注意,為了使對(duì)中滾動(dòng)工具開始自動(dòng)滾動(dòng)及使表現(xiàn)與正在顯示的文本個(gè)別部分相對(duì)應(yīng)的文本的行在瀏覽顯示窗口內(nèi)居中,在文件中必須在加亮對(duì)應(yīng)的文本個(gè)別部分的行之上存在足夠數(shù)量的文本行,如圖18所示。因此,當(dāng)從文件開始處開始文本閱讀時(shí),在自動(dòng)滾動(dòng)和對(duì)中出現(xiàn)之前,文本的加亮部分將從最高行開始,然后如圖17所示逐漸向?yàn)g覽顯示窗口下方移動(dòng),直至達(dá)到該顯示窗口的中心。應(yīng)當(dāng)注意,在WINDOWS(3.1)(注冊(cè)商標(biāo))環(huán)境內(nèi)實(shí)現(xiàn)本計(jì)算機(jī)程序時(shí)需要適應(yīng)WINDOWS的多任務(wù)處理能力。在這方面,所有WINDOWS程序必須共存并能與其他WINDOWS程序并行工作以便允許出現(xiàn)多任務(wù)處理。因此,必須設(shè)計(jì)本計(jì)算機(jī)程序使其保持在由WINDOWS強(qiáng)加的限度范圍內(nèi),以便通過(guò)WINDOWS進(jìn)行自己的時(shí)間管理而允許WINDOWS執(zhí)行多任務(wù)處理。因此,本計(jì)算機(jī)程序包含它自己的時(shí)間管理工具,在操作本程序的主函數(shù)FlashLoop期間當(dāng)調(diào)用函數(shù)DelayUntilTime時(shí)就調(diào)用該時(shí)間管理工具,上述二個(gè)函數(shù)均屬類TCharonWin的部分。而且上述函數(shù)允許計(jì)算機(jī)程序使用其自己的定時(shí)機(jī)構(gòu)使得‘WordDisplayTime’及消隱時(shí)間間隔可在例如1毫秒增量或減量的高分辨力基礎(chǔ)上調(diào)節(jié),同時(shí)仍允許WINDOWS用其他的諸WINDOWS應(yīng)用程序執(zhí)行WINDOWS自己的時(shí)間管理以避免凍結(jié)或禁止該其他WINDOWS應(yīng)用程序。在這方面,上述諸函數(shù)監(jiān)視進(jìn)行本計(jì)算機(jī)程序內(nèi)各活動(dòng)所需的時(shí)間以便在需要WINDOWS檢查其他諸應(yīng)用程序的調(diào)用并響應(yīng)其需求之前確定上述各活動(dòng)是否預(yù)定占用比必需的55ms時(shí)段更長(zhǎng)的時(shí)間,這由圓115表示。如果例如在屏幕上顯示一字或多字(即WordDisplayTime)或在字間保留一著色的無(wú)字屏幕(即消隱時(shí)間間隔)的活動(dòng)預(yù)定大于55ms,則本程序允許WINDOWS檢查其他諸應(yīng)用程序的調(diào)用并響應(yīng)其需求。此后,控制在55ms后返回到本計(jì)算機(jī)程序,計(jì)算進(jìn)行上述特定活動(dòng)所需的剩余時(shí)間。如果它大于55ms,就重復(fù)此操作過(guò)程。當(dāng)確定所需時(shí)間為小于55ms時(shí),上述函數(shù)調(diào)用一子程序,從而把時(shí)間無(wú)條件地消磨到零,這用圓114表示。這是可能的,因?yàn)橐郧暗挠?jì)算確定了需要多少消磨周期來(lái)消磨掉1ms的時(shí)間。此子程序由前述的非類函數(shù)23之一的函數(shù)Delay來(lái)調(diào)用。在已把適當(dāng)?shù)臅r(shí)間消磨到零之后,上述各函數(shù)回復(fù)到監(jiān)視在本計(jì)算機(jī)程序內(nèi)進(jìn)行下次活動(dòng)(或諸活動(dòng))的所需時(shí)間。在本計(jì)算機(jī)程序內(nèi)提供的另一函數(shù)是在各字顯示之間的屏幕消隱和刷新。正常情況下,一字接一字的出現(xiàn)留下了影子形象,此留影的充分消失需要時(shí)間。在高的每分鐘字?jǐn)?shù)率時(shí)這點(diǎn)尤其值得注意。所述留影可能是屏幕功能所致,或是由眼睛及由清除上一字形象、接受下一字形象的所需時(shí)間所致。因?yàn)樽值男蜗蟊旧怼包c(diǎn)亮”在屏幕上,所以僅僅阻止它出現(xiàn)并不完全消除它,此留影的淡化需要時(shí)間。字與字之間必須有足夠時(shí)間以允許影子形象充分消失,否則總的印象是一片模糊。因此,為了減輕此問(wèn)題,在各字顯示之間引入空白屏幕延時(shí)。當(dāng)消隱時(shí)間間隔增大時(shí),暫停變得可以覺察到,總的形象比必需的更空白。這就使各字看起來(lái)不如它們?cè)谧髯罴炎肿R(shí)別用時(shí)那樣的深。然而,用小的消隱時(shí)間間隔,可以找到使字序列相當(dāng)可讀的“快樂(lè)媒體”。因此,本計(jì)算機(jī)程序調(diào)用形成類TCharonWin的一部分的函數(shù)FlashLoop以在‘WordDisplayTime’過(guò)去之后立即把整個(gè)閃現(xiàn)顯示窗口重新繪成與背景相同的顏色,使得在消隱時(shí)間間隔期間顯示該重新著色的顯示窗口。應(yīng)當(dāng)理解,本發(fā)明的范圍不局限于已描述的特定實(shí)施例。因此,預(yù)計(jì)已描述的本發(fā)明實(shí)施例的各種變型和改進(jìn)型也都屬于所規(guī)定的本發(fā)明范圍。這些變型和改進(jìn)型包括以下功能和/或特點(diǎn)i)不使用‘Selectall’選項(xiàng)而用其他方法從存儲(chǔ)器中清除已規(guī)定的文本塊;ii)使瀏覽顯示窗口相對(duì)于閃現(xiàn)顯示窗口的屏幕比例可縮放;iii)能輸入一目標(biāo)速度及能使計(jì)算機(jī)程序設(shè)法提供此速率,即提供額定閱讀速率;iv)在文本的一節(jié)、一章等結(jié)束處選擇不同的延時(shí)或選擇暫停;v)能規(guī)定多個(gè)塊供選擇然后閱讀;vi)有在狀態(tài)條上顯示自開始已規(guī)定塊或整個(gè)閱讀活動(dòng)以來(lái)的已經(jīng)過(guò)時(shí)間的措施;vii)例如通過(guò)對(duì)字的計(jì)數(shù)來(lái)監(jiān)視在一文本塊內(nèi)正在顯示的本文個(gè)別部分的準(zhǔn)確位置,使得一旦標(biāo)記下新的塊規(guī)定并開始閱讀已經(jīng)讀過(guò)的該新塊材料時(shí),能立即顯示準(zhǔn)確的每分鐘字?jǐn)?shù);viii)以在狀態(tài)條上顯示的當(dāng)前每分鐘字?jǐn)?shù)率計(jì)算并顯示讀完規(guī)定的文本塊的估計(jì)時(shí)間;ix)在文本旁邊提供注釋工具;x)在文件中有由用戶進(jìn)入的諸如‘Find’和‘GoTo’文本之類的功能;xi)閱讀一段規(guī)定的時(shí)間以同時(shí)執(zhí)行在該段時(shí)間內(nèi)對(duì)已讀字?jǐn)?shù)及每分鐘字?jǐn)?shù)率計(jì)數(shù)的功能;xii)在閱讀標(biāo)題或訪問(wèn)落下的菜單期間能使報(bào)時(shí)信號(hào)暫停;xiii)在圖標(biāo)作用時(shí)停止文本的閃現(xiàn);xiv)當(dāng)本計(jì)算機(jī)程序用的窗口不是正在屏幕上顯示的主窗口時(shí)能暫停閱讀;xv)限制某些輸入?yún)?shù)以保證數(shù)值在適當(dāng)?shù)姆秶鷥?nèi)及保證字符類型;xvi)能閱讀大小不受限制的文件;xvii)能閱讀多種文件格式如“WORDPERFECT”(商標(biāo))、“AMIPRO”(商標(biāo))、“WORD”(商標(biāo))等;xviii)有把整個(gè)計(jì)算機(jī)程序作為被調(diào)用函數(shù)納入更大的字處理應(yīng)用程序中的措施;xix)能抓取文本并從任何地點(diǎn)例如從WINDOWS(注冊(cè)商標(biāo))‘clipboard(剪貼板)’程序中閱讀該文本;xx)有略讀(快讀)特點(diǎn);xxi)有消磨時(shí)間措施;xxii)有語(yǔ)音起動(dòng)措施;xxiii)有用用戶選項(xiàng)處理圖形圖像的措施以自動(dòng)顯示或自動(dòng)暫停以及對(duì)顯示質(zhì)疑或忽視顯示。權(quán)利要求1.一種表現(xiàn)供閱讀的文本和/或圖形信息的系統(tǒng),包括顯示設(shè)備(means),用于在顯示媒體上顯示所述文本和/或圖形信息;處理設(shè)備(means),用于接收電子編碼形式的所述文本和/或圖形信息并處理該信息以將其表現(xiàn)在所述顯示媒體上;控制設(shè)備(means),用于控制所述文本和/或圖像信息在所示顯示媒體上的表現(xiàn);以及輸入設(shè)備(means),用于輸入控制信號(hào)以操作所述處理設(shè)備和所述控制設(shè)備,或用于改變所述處理設(shè)備和所述控制設(shè)備的控制參數(shù);其中所述控制設(shè)備以相隔規(guī)定的消隱時(shí)間把所述文本和/或圖形信息的個(gè)別的和相繼的部分順序地放置所述顯示媒體的相同位置處,每一部分以規(guī)定的顯示時(shí)間在所述位置上顯示。2.如權(quán)利要求1所述的系統(tǒng),其中所述控制設(shè)備包括對(duì)中工具(means)以在所述位置內(nèi)橫向地對(duì)中每個(gè)所述部分。3.如權(quán)利要求1或2所述的系統(tǒng),其中所述控制設(shè)備包括應(yīng)用工具(means)以規(guī)定用于表現(xiàn)所述文本和/或圖形信息的所述顯示媒體的總布局以及規(guī)定所述系統(tǒng)的諸視覺控制屬性。4.如權(quán)利要求3所述的系統(tǒng),其中所述應(yīng)用工具按照其特定控制參數(shù)的設(shè)定和按照所述控制信號(hào)從所述輸入設(shè)備的輸入而直接響應(yīng)于所述控制設(shè)備的所述控制參數(shù)并調(diào)用用于在所述總布局內(nèi)規(guī)定和指定所述文本和/或圖形信息表現(xiàn)的特定特性的特定控制函數(shù)。5.如權(quán)利要求3或4所述的系統(tǒng),其中所述控制設(shè)備包括窗口顯示工具(means)以把所述總布局安排成一個(gè)或更多個(gè)表現(xiàn)所述文本和/或圖形信息的顯示窗口。6.如權(quán)利要求5所述的系統(tǒng),其中所述窗口顯示工具把所述可見布局有選擇地劃分成閃現(xiàn)顯示窗口和瀏覽顯示窗口,所述閃現(xiàn)顯示窗口包括所述位置而所述瀏覽窗口包括放置從中得到所述個(gè)別部分的所述文本和/或圖形信息的較大部分的區(qū)域。7如權(quán)利要求6所述的系統(tǒng),其中所述控制設(shè)備包括對(duì)中滾動(dòng)工具(means),用于自動(dòng)地在所述瀏覽顯示窗口內(nèi)滾動(dòng)所述較大部分的表現(xiàn)及在所述瀏覽顯示窗口內(nèi)使把相應(yīng)的文本和/或圖形信息表現(xiàn)到所述個(gè)別部分的所述較大部分的行對(duì)中。8.如權(quán)利要求6或7所述的系統(tǒng),其中所述窗口顯示工具包括加亮工具(means)以加亮在所述瀏覽顯示窗口內(nèi)的所述相應(yīng)的文本和/或圖形信息。9.如以上任一權(quán)利要求所述的系統(tǒng),其中所述控制設(shè)備包括延時(shí)工具(means),用于為所述規(guī)定的消隱時(shí)間和所述規(guī)定的顯示時(shí)間設(shè)定控制參數(shù)。10.如以上任一權(quán)利要求所述的系統(tǒng),其中所述控制設(shè)備包括部分選擇工具(means),用于為所述個(gè)別部分設(shè)定控制參數(shù)。11.如以上從屬于權(quán)利要求6的任一權(quán)利要求所述的系統(tǒng),其中所述控制設(shè)備包括顯示窗口縮放工具(means),用于使所述可見布局中所述瀏覽顯示窗口相對(duì)于所述閃現(xiàn)顯示窗口的比例可縮放。12.如以上任一權(quán)利要求所述的系統(tǒng),其中所述控制設(shè)備包括掃描率工具(means),用于對(duì)正在按每個(gè)時(shí)間間隔被掃描的所述文本和/或圖形信息作累進(jìn)計(jì)數(shù)及用于為所述可見布局顯示該累進(jìn)計(jì)數(shù)。13.如以上任一權(quán)利要求所述的系統(tǒng),其中所述控制設(shè)備包括控制參數(shù)改變工具(means),用于同時(shí)改變某些可設(shè)置的參數(shù),但是所述改變獨(dú)立于所述控制設(shè)備的其他控制參數(shù)和函數(shù)的操作。14.如權(quán)利要求13所述的系統(tǒng),其中所述控制參數(shù)改變工具與所述延時(shí)工具相互作用以在已經(jīng)設(shè)置所述規(guī)定的消隱時(shí)間和所述規(guī)定的延遲時(shí)間的控制參數(shù)之后以受控和連續(xù)的方式改變所述控制參數(shù)。15.如以上從屬于權(quán)利要求6的任一權(quán)利要求所述的系統(tǒng),其中所述控制設(shè)備包括閃現(xiàn)顯示窗口重畫工具(means),用于在所述規(guī)定的顯示時(shí)間過(guò)去之后立即在整個(gè)所述規(guī)定的消隱時(shí)間期間用與所述閃現(xiàn)顯示窗口的背景顏色相同的顏色重畫整個(gè)閃現(xiàn)顯示窗口。16.如以上任一權(quán)利要求所述的系統(tǒng),其中所述處理設(shè)備是具有包含多任務(wù)處理視窗管理功能的圖形用戶界面的微計(jì)算機(jī)。17.如權(quán)利要求16所述的系統(tǒng),其中所述控制設(shè)備包括時(shí)間管理工具(means),用于監(jiān)視由所述控制設(shè)備執(zhí)行的諸函數(shù)的預(yù)期時(shí)間和已過(guò)去時(shí)間,及用于協(xié)調(diào)放棄和回到對(duì)和由所述多任務(wù)處理視窗管理功能的控制。18.如權(quán)利要求17所述的系統(tǒng),其中所述時(shí)間管理工具監(jiān)視執(zhí)行所述系統(tǒng)諸函數(shù)所需的時(shí)間并確定當(dāng)前函數(shù)是否預(yù)定占用比所述多任務(wù)處理視窗管理功能允許這種函數(shù)的必要時(shí)間間隔更長(zhǎng)的時(shí)間;響應(yīng)于確定了當(dāng)前函數(shù)預(yù)定占用比所述必要時(shí)間間隔更長(zhǎng)的時(shí)間,所述時(shí)間管理工具放棄本系統(tǒng)對(duì)所述多任務(wù)處理視窗管理功能的控制并在其從所述多任務(wù)處理視窗管理功率返回之后重新取得所述控制,一旦有所述返回,所述時(shí)間管理工具計(jì)算執(zhí)行所述當(dāng)前函數(shù)的剩余時(shí)間,如該剩余時(shí)間大于所述必要的時(shí)間函數(shù),就重復(fù)放棄對(duì)所述多任務(wù)處理視窗管理功能的所述控制;響應(yīng)于確定了當(dāng)前函數(shù)預(yù)定占用比所述必要時(shí)間間隔更短的時(shí)間,所述時(shí)間管理工具無(wú)條件地消磨時(shí)間直到完成該函數(shù)然后監(jiān)視下一個(gè)函數(shù)。19.如權(quán)利要求16至18中任一權(quán)利要求所述的系統(tǒng),其中所述控制設(shè)備是包括多個(gè)源文件編譯的計(jì)算機(jī)程序,這些原文件包括源代碼文件、首標(biāo)文件、資源文件和資源首標(biāo)文件,所述各源文件形成在所述計(jì)算機(jī)上與一個(gè)或更多規(guī)定的動(dòng)態(tài)鏈接庫(kù)一起運(yùn)行的可執(zhí)行文件。20.如權(quán)利要求16至19中任一權(quán)利要求所述的系統(tǒng),其中所述控制設(shè)備是用各有一對(duì)應(yīng)加速鍵的菜單項(xiàng)操作的計(jì)算機(jī)程序,所述菜單項(xiàng)用于送出在規(guī)定的類中調(diào)用一函數(shù)的消息,所述規(guī)定的類包括一個(gè)或更多個(gè)以下函數(shù)i)為所述計(jì)算機(jī)程序創(chuàng)建應(yīng)用程序及為保持所述瀏覽顯示窗口及所述閃現(xiàn)顯示窗口的函數(shù)創(chuàng)建事例;ii)為在所述顯示設(shè)備上顯示而保持所述瀏覽顯示窗口及所述閃現(xiàn)顯示窗口;iii)從所述輸入設(shè)備獲得用于操作所述閃現(xiàn)顯示窗口的各種延時(shí)率;iv)從所述輸入設(shè)備獲得所述閃現(xiàn)顯示窗口的每次閃現(xiàn)的所述文本和/或圖形信息的個(gè)別項(xiàng)數(shù);v)存儲(chǔ)識(shí)別所述文本和/或圖形信息的塊選擇的諸偏移值并在所述瀏覽顯示窗口中使該塊選擇對(duì)中;vi)在所述閃現(xiàn)顯示窗口中管理所述文本和/或圖形信息的顯示;vii)顯示所述文本和/或圖形信息的規(guī)定數(shù)目的個(gè)別項(xiàng)以構(gòu)成所述部分。21.如權(quán)利要求20所述的系統(tǒng),其中一所述函數(shù)可調(diào)用與由以上任一權(quán)利要求所述的控制設(shè)備提供的諸函數(shù)對(duì)應(yīng)的更多函數(shù),其中所述諸函數(shù)包括所述對(duì)中工具,所述應(yīng)用工具,所述窗口顯示工具,所述對(duì)中滾動(dòng)工具、所述加亮工具、所述延時(shí)工具、所述部分選擇工具、所述顯示窗口縮放工具、所述掃描率工具、所述控制參數(shù)改變工具,所述閃現(xiàn)顯示窗口重畫工具以及所述時(shí)間管理工具。22.一種表現(xiàn)供閱讀的文本和/或圖形信息的方法,包括選擇所述文本和/或圖形信息的個(gè)別和相繼部分;在顯示媒體同一位置上順序地以間隔規(guī)定的消隱時(shí)間地顯示所述諸部分;在所述位置上把每一部分顯示一段規(guī)定的顯示時(shí)間。23.如權(quán)利要求22所述的方法,包括在所述位置內(nèi)橫向地對(duì)中每個(gè)所述部分。24.如權(quán)利要求22或23所述的方法,包括按照特定控制參數(shù)的設(shè)定而規(guī)定和指定在所述顯示媒體上顯示的總布局內(nèi)的文本和/或圖形信息表現(xiàn)的特定特性。25.如權(quán)利要求24所述的方法,包括把所述總布局安排成規(guī)定放入所述文本和/或圖形信息的一個(gè)或更多個(gè)顯示窗口。26.如權(quán)利要求25所述的方法,包括把所述總布局的可見布局劃分成閃現(xiàn)顯示窗口及瀏覽顯示窗口,所述閃現(xiàn)顯示窗口包括所述位置,所述瀏覽顯示窗口包括放置從中獲得所述個(gè)別部分的所述文本和/或圖形信息的較大部分的區(qū)域。27.如權(quán)利要求26所述的方法,包括在所述瀏覽顯示窗口內(nèi)自動(dòng)滾動(dòng)所述較大部分的表現(xiàn)以及在所述瀏覽顯示窗口內(nèi)使正在把相應(yīng)的文本和/或圖形信息表現(xiàn)到所述個(gè)別部分的所述較大部分的行對(duì)中。28.如權(quán)利要求26或27所述的方法,包括加亮工具以加亮在所述瀏覽顯示窗口內(nèi)的所述對(duì)應(yīng)的文本和/或圖形信息。29.如權(quán)利要求22至28中任一權(quán)利要求所述的方法,包括為所述規(guī)定的消隱時(shí)間和所述規(guī)定的顯示時(shí)間設(shè)定控制參數(shù)。30.如權(quán)利要求22至29中任一權(quán)利要求所述的方法,包括為所述個(gè)別部分設(shè)定諸控制參數(shù)。31.如權(quán)利要求22至30中任一從屬于權(quán)利要求26的權(quán)利要求所述的方法,包括使所述瀏覽顯示窗口相對(duì)于所述閃現(xiàn)顯示窗口的可見布局比例可縮放。32.如權(quán)利要求22至31中任一權(quán)利要求所述的方法,包括對(duì)正在按時(shí)間間隔被掃描的所述文本和/或圖形信息作累進(jìn)計(jì)數(shù)及為所述可見布局顯示該累進(jìn)計(jì)數(shù)。33.如權(quán)利要求22至32中任一權(quán)利要求所述的方法,包括同時(shí)改變某些可設(shè)置的參數(shù),但是所述改變獨(dú)立于其他控制參數(shù)和函數(shù)的操作。34.如權(quán)利要求33所述的方法,包括在已經(jīng)設(shè)置所述規(guī)定的消隱時(shí)間和所述規(guī)定的延遲時(shí)間的控制參數(shù)之后以受控和連續(xù)的方式改變所述控制參數(shù)。35.如權(quán)利要求22至34中從屬于權(quán)利要求26的權(quán)利要求所述的方法,包括在所述規(guī)定的顯示時(shí)間過(guò)去之后立即在整個(gè)所述規(guī)定的消隱時(shí)間期間用與所述閃現(xiàn)顯示窗口的背景顏色相同的顏色重畫整個(gè)閃現(xiàn)顯示窗口。36.如權(quán)利要求22至35中任一權(quán)利要求所述的方法,包括與多任務(wù)處理視窗管理功能結(jié)合地表現(xiàn)所述供閱讀的文本和/或圖形信息。37.如權(quán)利要求36所述的方法,包括監(jiān)視由文本和/或圖形信息的表現(xiàn)所執(zhí)行的函數(shù)的預(yù)期時(shí)間和已過(guò)去時(shí)間,以及協(xié)調(diào)放棄和回到對(duì)和由所述多任務(wù)處理視窗管理功能的控制。38.如權(quán)利要求37所述的方法,包括監(jiān)視執(zhí)行諸函數(shù)所需的時(shí)間并確定當(dāng)前函數(shù)是否預(yù)定占用比所述多任務(wù)處理視窗管理功能允許這種函數(shù)的必要時(shí)間間隔更長(zhǎng)的時(shí)間,響應(yīng)于確定了當(dāng)前函數(shù)預(yù)定占用比所述必要時(shí)間間隔更長(zhǎng)的時(shí)間而放棄對(duì)所述多任務(wù)處理視窗管理功能的控制,和重新獲得由其控制,一旦回到由所述多任務(wù)處理視窗管理功能的控制就計(jì)算執(zhí)行所述當(dāng)前函數(shù)的剩余時(shí)間,并且如果大于所述必要時(shí)間函數(shù)則重復(fù)放棄對(duì)所述多任務(wù)處理視窗管理功能的控制,響應(yīng)于確定了當(dāng)前函數(shù)預(yù)定占用比所述必要時(shí)間間隔更少的時(shí)間而無(wú)條件消磨時(shí)間直到函數(shù)執(zhí)行完畢以及在所述消磨之后監(jiān)視下一個(gè)函數(shù)。39.如以上任一權(quán)利要求所述的方法,包括操作各有一對(duì)應(yīng)加速鍵的菜單項(xiàng),用于送出消息以調(diào)用規(guī)定的類中的函數(shù),所述規(guī)定的類包括一個(gè)或更多的以下函數(shù)i)為所述計(jì)算機(jī)程序創(chuàng)建應(yīng)用程序及為保持所述瀏覽顯示窗口及所述閃現(xiàn)顯示窗口的函數(shù)創(chuàng)建事例;ii)保持用于在所述顯示設(shè)備上顯示的所述瀏覽顯示窗口及所述閃現(xiàn)顯示窗口;iii)從所述輸入設(shè)備獲得操作所述閃現(xiàn)顯示窗口的各種延時(shí)率;iv)從所述輸入設(shè)備獲得所述閃現(xiàn)顯示窗口的每次閃現(xiàn)的所述文本和/或圖形信息的個(gè)別項(xiàng)項(xiàng)數(shù);v)存儲(chǔ)識(shí)別所述文本和/或圖形信息的塊選擇的諸偏移值以及在所述瀏覽顯示窗口中對(duì)中所述塊選擇;vi)在所述閃現(xiàn)顯示窗口中管理所述文本和/或圖形信息的顯示;vii)顯示所述文本和/或圖形信息的規(guī)定數(shù)目的個(gè)別項(xiàng)以組成所述部分。40.如權(quán)利要求39所述的方法,其中一所述函數(shù)可調(diào)用更多與如權(quán)利要求22至40所述的諸函數(shù)對(duì)應(yīng)的函數(shù)。41.一種基本上如本權(quán)利要求書描述的表現(xiàn)供閱讀的文本和/或圖形信息的系統(tǒng)。42.一種基本上如本權(quán)利要求書描述的表現(xiàn)供閱讀的文本和/或圖形信息的方法。全文摘要一種表現(xiàn)供閱讀的文本和/或圖形信息的系統(tǒng)(11)。該系統(tǒng)包括一可視顯示單元(15),用于在總布局屏幕內(nèi)顯示所述文本和/或圖形信息,還包括一含有處理設(shè)備(13)的微計(jì)算機(jī),以接收電子編碼形式的文本和/或圖形信息及對(duì)其處理后供在可視顯示單元(15)上表現(xiàn)。提供計(jì)算機(jī)程序(19),用于以規(guī)定方式控制所述文本和/或圖形信息在可視顯示單元(15)上的表現(xiàn)。設(shè)有鍵盤和鼠標(biāo)輸入(17),用于輸入控制信號(hào)以操作處理設(shè)備(13)及計(jì)算機(jī)程序(19),或用于改變所述處理設(shè)備及計(jì)算機(jī)程序的控制參數(shù)。所述計(jì)算機(jī)程序以相隔規(guī)定的消隱時(shí)間順序把所述文本和/或圖形信息的個(gè)別和相繼部分安放在布局屏幕的同一位置上,每部分在此位置顯示一規(guī)定的顯示時(shí)間??偛季制聊粍澐殖蔀g覽顯示窗口(37)和閃現(xiàn)顯示窗口(39),瀏覽顯示窗口用于顯示待表現(xiàn)的一塊文本塊和/或圖形信息,在閃現(xiàn)顯示窗口中順序安放文本和/或圖形信息的個(gè)別和相繼部分的所述位置被放在中心。文檔編號(hào)G06F3/048GK1200826SQ96197886公開日1998年12月2日申請(qǐng)日期1996年9月4日優(yōu)先權(quán)日1995年9月4日發(fā)明者馬克·A·埃德加申請(qǐng)人:查羅恩控股公司