相關(guān)文章
欄目分類(lèi) classification
易語(yǔ)言控件的通用屬性方法和事件
一、控件的通用“屬性”
控件的通用屬性主要有:名稱(chēng)、標(biāo)題、禁止、可視、鼠標(biāo)指針、字體、邊框、可停留焦點(diǎn)、左邊、頂邊、寬度、高度、標(biāo)記、備注等。
上述列出的屬性中,只有名稱(chēng)、左邊、頂邊、寬度、高度、標(biāo)記、備注是每個(gè)控件都擁有的屬性,其它屬性雖不是每個(gè)控件都有,但也非常常見(jiàn),故也認(rèn)為它們是控件的通用屬性。通用屬性中除了名稱(chēng)和標(biāo)題外,一般不必刻意設(shè)置——易語(yǔ)言自動(dòng)為其取最常見(jiàn)的值。
除了通用屬性外,控件一般都還有自己的特有屬性。
下面逐個(gè)講解控件的通用“屬性”:
1、名稱(chēng)
控件的唯一標(biāo)識(shí)。好比現(xiàn)實(shí)中人的身份證。放到程序中控件必須有名稱(chēng)——如果程序員未特別命名,易語(yǔ)言自動(dòng)為它按序號(hào)命名(如:按鈕1、按鈕2……編輯框1、編輯框2……等)。要想在代碼中操作控件的屬性方法和事件,就必須指定目的控件的名稱(chēng)(如:按鈕1.標(biāo)題)。
[注:如果程序較為復(fù)雜——用到的控件較多,最好自己為控件命名。為控件取一個(gè)有意義的名稱(chēng)是一個(gè)好的習(xí)慣。我個(gè)人認(rèn)為,一個(gè)好的名稱(chēng) = 功能 + 控件類(lèi)型,如“確定按鈕”“取消按鈕”“密碼編輯框”等等。另外,切不可用代碼改動(dòng)控件的名稱(chēng)!]
2、標(biāo)題
顯示于控件上的文字。主要是給程序的使用者看的,通常作為某種提示。因控件的不同,標(biāo)題出現(xiàn)的出現(xiàn)的位置可能也不一樣。如:窗口、通用對(duì)話框等有標(biāo)題欄的控件,標(biāo)題出現(xiàn)在標(biāo)題欄中;而按鈕、標(biāo)簽、單選框、選擇框、分組框、菜單等沒(méi)有標(biāo)題欄的控件,標(biāo)題出現(xiàn)在控件中央(或偏上下左右)。
3、禁止
控制控件可否被程序使用者操作。它的值只能為真或假,默認(rèn)為假,即不禁止。被禁止的控件一般表現(xiàn)為:上面的文字(即標(biāo)題)變?yōu)榛疑,單擊它沒(méi)有任何反應(yīng)。
4、可視
控制控件可否被程序使用者看到。它的值只能為真或假,默認(rèn)為真,即可以被看到。
5、鼠標(biāo)指針
當(dāng)鼠標(biāo)移動(dòng)到控件上方時(shí),鼠標(biāo)指針的形狀。本屬性一般不必改動(dòng)——易語(yǔ)言根據(jù)控件的不同,會(huì)自動(dòng)為其取一個(gè)默認(rèn)值(最常見(jiàn)的),如:按鈕上為,編輯框上為等。
6、字體
標(biāo)題文字的字體:包括字體名稱(chēng)、字體大小、加粗、傾斜、下劃線、刪除線等。注意,字體顏色一般是不生效的,標(biāo)題文字的顏色由另外的屬性(文本顏色)控制。
7、邊框
控制邊框的樣式。邊框一般有:0.無(wú)邊框、1.凹入式、2.凸出式、3.淺凹入式、4.鏡框式、5.單線邊框式等幾種樣式。對(duì)標(biāo)簽控件而言,它還有另外一個(gè)樣式:6.漸變鏡框式。而對(duì)于窗口來(lái)說(shuō),它的樣式就完全不同:0.無(wú)邊框、1.普通可調(diào)邊框、2.普通固定邊框、3.窄標(biāo)題可調(diào)邊框、4.窄標(biāo)題固定邊框、5.鏡框式可調(diào)邊框、6.鏡框式固定邊框等。
8、可停留焦點(diǎn)
設(shè)置當(dāng)用戶(hù)使用 TAB 或光標(biāo)鍵在各單元之間移動(dòng)焦點(diǎn)時(shí)是否允許在本單元上停留。它的值只能為真或假,默認(rèn)為真。如果控件的可停留焦點(diǎn)屬性為真,則控件還有另外一個(gè)屬性(停留順序)控制焦點(diǎn)停留的順序——即當(dāng)按TAB或光標(biāo)鍵時(shí),窗口上各控件獲得輸入焦點(diǎn)的順序。(如果按鈕上有一個(gè)黑色細(xì)點(diǎn)組成的虛框,或者編輯框中有光標(biāo)在閃爍,表示它正在擁有輸入焦點(diǎn)。)
9、左邊、頂邊、寬度、高度
左邊、頂邊分別是控件左上角點(diǎn)的橫縱坐標(biāo),寬度、高度就分別是控件的寬度和高度。四者的單位均為象素。注意左邊、頂邊是相對(duì)于控件的“父控件”而言的,比如我們?cè)诋?huà)板中“畫(huà)”一個(gè)按鈕,它的左邊、頂邊就是相對(duì)于畫(huà)板左上角的坐標(biāo)——這里畫(huà)板充當(dāng)了“父控件”(或稱(chēng)容器控件)。易語(yǔ)言中可以充當(dāng)父控件的控件,除了窗口和畫(huà)板,還有選擇夾、分組框、圖片框、外形框等。
。ǜ缚丶妥涌丶年P(guān)系:1、如果父控件被銷(xiāo)毀、禁止或者隱藏,其內(nèi)部的所有控件將會(huì)自動(dòng)被銷(xiāo)毀、禁止或者隱藏;2、子控件始終被限制在父控件的內(nèi)部,其坐標(biāo)位置相對(duì)于父控件的左上角;3、父控件內(nèi)的所有子控件之間存在層次關(guān)系,但是父控件與子控件之間不存在層次關(guān)系。)
。ó(dāng)任一可視控件被“畫(huà)”到或“粘貼”到某“容器控件”——可充當(dāng)父控件的控件——中時(shí),父子關(guān)系就自動(dòng)形成。要解除控件的父子關(guān)系,可將父控件中的子控件刪除或剪切掉。)
10、標(biāo)記、備注
標(biāo)記:記錄控件的附加文本信息。備注:對(duì)控件的備注信息,主要是程序員自己使用。二者的不同在于,標(biāo)記可以在程序中使用,而備注不可以——類(lèi)似調(diào)用“控件名.備注”是非法的。
二者在實(shí)際編程中很少使用。標(biāo)記還偶爾用到;備注,我敢說(shuō),99%的易友是從來(lái)不用的。
二、控件的通用“方法”
控件的通用方法主要有:取窗口句柄()、銷(xiāo)毀()、獲取焦點(diǎn)()、可有焦點(diǎn)()、取用戶(hù)區(qū)寬度()、取用戶(hù)區(qū)高度()、刷新()、移動(dòng)()、調(diào)整層次()、彈出菜單()、發(fā)送信息()、投遞信息()、取標(biāo)記單元()等。其中銷(xiāo)毀()、獲取焦點(diǎn)()、移動(dòng)()、彈出菜單()等較為常用。此外還有五個(gè)關(guān)于“重畫(huà)”的方法,很少用到。相關(guān)例程
注:所謂“方法”,說(shuō)白了也是函數(shù)(子程序),只不過(guò)“方法”是與特定控件相關(guān)聯(lián)的。“方法”與普通函數(shù)(如系統(tǒng)庫(kù)函數(shù)和自定義函數(shù))在調(diào)用的語(yǔ)法上是不一樣的——“方法”的調(diào)用:控件名稱(chēng).方法名稱(chēng)([參數(shù)...]),如 _啟動(dòng)窗口.銷(xiāo)毀();普通函數(shù)的調(diào)用:函數(shù)名稱(chēng)([參數(shù)...]),如 取系統(tǒng)時(shí)間()。
注:“方法”是“控件的”方法,“方法”總是依附于某個(gè)控件的。離開(kāi)了控件,“方法”根本無(wú)從談起。同樣的道理,“屬性”是“控件的”屬性,“事件”是“控件的”事件。屬性、方法、事件,都和控件密切相關(guān)。
下面逐個(gè)講解控件的通用“方法”:
1、取窗口句柄()
功能:取控件的“窗口句柄”,并以返回值的形式返回。
語(yǔ)法:控件名稱(chēng).取窗口句柄()
應(yīng)用實(shí)例:1、窗口句柄 = _啟動(dòng)窗口.取窗口句柄()
2、窗口句柄 = 編輯框1.取窗口句柄()
//分別取得“_啟動(dòng)窗口”“編輯框1”的窗口句柄,并存到整數(shù)型變量“窗口句柄”中。
[注:是 取“窗口句柄”,而不是取“窗口的”句柄。“窗口句柄”是一個(gè)專(zhuān)有名詞,一般在API調(diào)用時(shí)使用。。取窗口句柄()不但能夠取“窗口”的“窗口句柄”,也能取“控件”的“窗口句柄”(窗口本身就是一個(gè)特殊的控件。)][另注:只有可視控件才有“窗口句柄”;非可視控件是沒(méi)有“窗口句柄”的,不能應(yīng)用取窗口句柄()方法——比如“窗口句柄 = 時(shí)鐘1.取窗口句柄()”是非法的。]
2、銷(xiāo)毀()
功能:銷(xiāo)毀控件:使其從屏幕上消失,并在內(nèi)存中徹底刪除。
語(yǔ)法:控件名稱(chēng).銷(xiāo)毀()
應(yīng)用實(shí)例:1、_啟動(dòng)窗口.銷(xiāo)毀()
2、按鈕1.銷(xiāo)毀()
//分別銷(xiāo)毀“_啟動(dòng)窗口”和“按鈕1”。第二種用法少見(jiàn),因?yàn)槠胀ǹ丶偸悄硞(gè)窗口的子控件,當(dāng)窗口被銷(xiāo)毀時(shí),子控件也被自動(dòng)銷(xiāo)毀,所以一般不去專(zhuān)門(mén)銷(xiāo)毀普通控件(只要銷(xiāo)毀窗口就可以了)。
3、獲取焦點(diǎn)()
功能:使控件獲得輸入焦點(diǎn)。
語(yǔ)法:控件名稱(chēng).獲取焦點(diǎn)()
應(yīng)用實(shí)例:1、編輯框1.獲取焦點(diǎn)()
//使“編輯框1”獲得輸入焦點(diǎn)。這一句編程中經(jīng)常用到。(如果編輯框中有光標(biāo)——通常是閃爍的黑色豎線——則表示它已經(jīng)獲取輸入焦點(diǎn),否則表示還沒(méi)有獲取輸入焦點(diǎn)。)
4、可有焦點(diǎn)()
功能:判斷控件是否擁有輸入焦點(diǎn),返回真或假。
語(yǔ)法:控件名稱(chēng).可有焦點(diǎn)()
應(yīng)用實(shí)例:1、x = 編輯框1.可有焦點(diǎn)()
//如果“編輯框1”當(dāng)前擁有輸入焦點(diǎn),x的值為真,否則為假——x要事先定義為邏輯型變量。
5、取用戶(hù)區(qū)寬度()、取用戶(hù)區(qū)高度()
功能:取得控件“用戶(hù)區(qū)”的寬度/高度。
語(yǔ)法:控件名稱(chēng).取用戶(hù)區(qū)寬度()/取用戶(hù)區(qū)高度()
應(yīng)用實(shí)例:1、寬 = _啟動(dòng)窗口.取用戶(hù)區(qū)寬度()
2、高 = _啟動(dòng)窗口.取用戶(hù)區(qū)高度()
//分別取得“_啟動(dòng)窗口”的“用戶(hù)區(qū)”寬度和高度,并存到整數(shù)型變量“寬”和“高”中。
[注:“用戶(hù)區(qū)”——對(duì)窗口而言,用戶(hù)區(qū)域?yàn)榇翱趨^(qū)域減去標(biāo)題欄、菜單欄、邊框后的區(qū)域;對(duì)普通控件而言,用戶(hù)區(qū)域等同于其窗口單元區(qū)域。]
6、刷新()
功能:重新顯示控件中的內(nèi)容。與“刷新”屏幕是一個(gè)道理。
語(yǔ)法:控件名稱(chēng).刷新()
應(yīng)用實(shí)例:1、_啟動(dòng)窗口.刷新()
2、畫(huà)板1.刷新()
//分別刷新“_啟動(dòng)窗口”和“畫(huà)板1”。如果畫(huà)板的自動(dòng)重畫(huà)屬性為假(默認(rèn)值),則經(jīng)常刷新畫(huà)板是必要的。如果嫌麻煩,干脆把畫(huà)板的自動(dòng)重畫(huà)設(shè)為真——只是多占用些系統(tǒng)資源而已。
7、移動(dòng)()
功能:改變控件的位置和尺寸。
語(yǔ)法:控件名稱(chēng).移動(dòng)([左邊],[頂邊],[寬度],[高度])
參數(shù):分別對(duì)應(yīng)移動(dòng)后控件的左邊、頂邊、寬度和高度。四個(gè)參數(shù)均可省略。
應(yīng)用實(shí)例:1、_啟動(dòng)窗口.移動(dòng)(0,0,100,200)
2、按鈕1.移動(dòng)(,,100,50) 等效于 按鈕1.移動(dòng)(-1,-1,100,50)
//把“_啟動(dòng)窗口”移動(dòng)到(0,0),且把其寬度和高度改為100和200;不移動(dòng)“按鈕1”的位置,只把其寬度和高度改為100和50。(單位是象素。)
[注:移動(dòng)()可同時(shí)設(shè)置控件的四個(gè)屬性,如果省略某參數(shù)(或置為-1)則不改變?cè)瓉?lái)的值。本“方法”的執(zhí)行效率,與“分別為各屬性賦值”相比,要高出許多倍,特別是在循環(huán)中。推薦使用。]
8、調(diào)整層次()
功能:調(diào)整控件所處層次。
語(yǔ)法:控件名稱(chēng).調(diào)整層次([欲調(diào)整到的層次])
參數(shù):整數(shù)型,可以為以下常量之一: 1、#頂層; 2、#底層; 3、#最高層; 4、#次高層。如果被省略,默認(rèn)為“#頂層”。
應(yīng)用實(shí)例:1、_啟動(dòng)窗口.調(diào)整層次(#最高層) 或 _啟動(dòng)窗口.調(diào)整層次(3)
2、按鈕1.調(diào)整層次(#頂層) 或 按鈕1.調(diào)整層次(1)
//把“”調(diào)整到最高層;把“按鈕1”調(diào)整到頂層。
[注:做個(gè)實(shí)驗(yàn),在窗口上畫(huà)一個(gè)“按鈕1”,再畫(huà)一個(gè)“按鈕2”,然后把“按鈕2”拖到“按鈕1”上,會(huì)發(fā)現(xiàn)“按鈕2”把“按鈕1”遮住了!這就說(shuō)明了兩者的層次關(guān)系:“按鈕2”在“按鈕1”的上方,高一個(gè)層次。][注:#最高層——機(jī)器中所有程序的所有窗口的最前面;#頂層——本程序內(nèi)所有控件的最前面。#底層與#頂層 相對(duì);#次高層 位于#最高層 下一層。][注:對(duì)于普通控件,通常調(diào)整到#頂層就可以了;對(duì)于窗口這個(gè)特殊控件,有時(shí)需要調(diào)整到#最高層——在所有窗口的最前面。]
9、彈出菜單()
功能:彈出菜單(通常是右鍵菜單)
語(yǔ)法:控件名稱(chēng).彈出菜單( 欲彈出的菜單,[水平顯示位置],[垂直顯示位置])
參數(shù):第一個(gè)參數(shù)是欲彈出的菜單;后兩個(gè)是菜單彈出后左上角的橫縱坐標(biāo),如省略將自動(dòng)使用當(dāng)前鼠標(biāo)位置。
應(yīng)用實(shí)例:1、彈出菜單(文件,,)
//在當(dāng)前鼠標(biāo)所在位置彈出“文件”菜單。這種寫(xiě)法最常見(jiàn)。這行代碼通常都放在某控件的“鼠標(biāo)右鍵被按下”或“鼠標(biāo)右鍵被放開(kāi)”事件處理子程序中。彈出菜單()前面通常不必帶控件名稱(chēng)。
10、發(fā)送信息()、投遞信息()
功能:將指定信息發(fā)送到控件。
語(yǔ)法:控件名稱(chēng).發(fā)送信息(信息值,參數(shù)1,參數(shù)2)
控件名稱(chēng).投遞信息(信息值,參數(shù)1,參數(shù)2)
參數(shù):第一個(gè)參數(shù)是欲發(fā)送或投遞的信息值;后兩個(gè)是輔助信息。
應(yīng)用實(shí)例:1、編輯框1.發(fā)送信息(769,0,0) //復(fù)制“編輯框1”中被選中的文本。
2、編輯框1.發(fā)送信息(770,0,0) //把剪貼板中的文本粘貼到“編輯框1”。
[注:發(fā)送信息、投遞信息的區(qū)別:前者并等待且取回信息反饋值;后者不等待直接返回。]
11、取標(biāo)記單元()
功能:前窗口中具有指定標(biāo)記數(shù)值文本的單元(控件)。
語(yǔ)法:控件名稱(chēng).取標(biāo)記單元(標(biāo)記數(shù)值)
參數(shù):整數(shù)型,欲尋找單元的“標(biāo)記”屬性的數(shù)值形式。(“123”->123)
應(yīng)用實(shí)例:1、取標(biāo)記單元(123)
//如果此前令“按鈕1”的“標(biāo)記”屬性為“123”,則上述代碼的返回值為“按鈕1”。
三、控件的通用“事件”
控件的通用“事件”主要有:1、鼠標(biāo)左鍵被按下;2、鼠標(biāo)左鍵被放開(kāi);3、被雙擊;4、鼠標(biāo)右鍵被按下;5、鼠標(biāo)右鍵被放開(kāi);6、鼠標(biāo)位置被移動(dòng);7、按下某鍵;8、放開(kāi)某鍵;9、字符輸入;10、獲得焦點(diǎn);11、失去焦點(diǎn)。易語(yǔ)言中的可視控件,都有上述事件。除了這些通用事件,控件一般都還有自己的專(zhuān)有事件。
事件的產(chǎn)生由易語(yǔ)言系統(tǒng)全權(quán)負(fù)責(zé)。當(dāng)某一事件產(chǎn)生時(shí),系統(tǒng)將自動(dòng)調(diào)用該事件所對(duì)應(yīng)的“事件處理子程序”。編程者所要做的,只是根據(jù)需要選擇要響應(yīng)的事件,并在該事件的“事件處理子程序”中輸入代碼即可。
每一個(gè)事件都有它的產(chǎn)生時(shí)機(jī)。有的事件其產(chǎn)生時(shí)機(jī)非常明顯,如鼠標(biāo)左鍵被按下、鼠標(biāo)左鍵被放開(kāi)……等,就是在鼠標(biāo)左鍵被按下或放開(kāi)時(shí)產(chǎn)生;而有的事件其產(chǎn)生時(shí)機(jī)就不太明顯,這個(gè)到時(shí)我會(huì)分別介紹。
在《易語(yǔ)言知識(shí)庫(kù)》中,除了獲得焦點(diǎn)和失去焦點(diǎn),對(duì)其它事件的解釋都有這么一句:“處理本事件的子程序如果返回假,則取消本事件,不再將此事件傳遞到所屬對(duì)象上去;如果不返回值或返回真,則將此事件繼續(xù)傳遞到所屬對(duì)象上去。” 相信大家會(huì)比較迷惑,讓我們做個(gè)試驗(yàn):在設(shè)計(jì)窗口中放一個(gè)編輯框控件,在“_編輯框1_鼠標(biāo)右鍵被放開(kāi)”中輸入: 鳴叫() 再加一行代碼:返回(假) 運(yùn)行程序,在編輯框中按右鍵時(shí),只會(huì)有喇叭或音箱叫一聲,卻不再?gòu)棾隹旖莶藛瘟恕#ㄎ覀兌贾,在編輯框中按下鼠?biāo)右鍵并放開(kāi)時(shí),通常會(huì)彈出一快捷菜單。)分析一下為什么會(huì)這樣呢?因?yàn)榫庉嬁虻?ldquo;鼠標(biāo)右鍵被放開(kāi)”事件被我們半路攔截了,編輯框根本沒(méi)有收到“鼠標(biāo)右鍵被放開(kāi)”事件,也就是說(shuō),被我們做了手腳,它還蒙在鼓里呢^_^ (再考慮一下,如果前面代碼只寫(xiě)鳴叫()而不加返回(假)呢?結(jié)果是,在編輯框中右鍵放開(kāi)時(shí),先叫一聲再?gòu)棾霾藛巍2恍拍囈辉!例程?br data-filtered="filtered" /> 下面逐個(gè)講解控件的通用“事件”:
1、鼠標(biāo)左鍵被按下
事件的產(chǎn)生時(shí)機(jī):鼠標(biāo)左鍵被按下時(shí)。
語(yǔ)法:邏輯型 _控件名稱(chēng)_鼠標(biāo)左鍵被按下(橫向位置,縱向位置,功能鍵狀態(tài))
參數(shù):前兩個(gè)參數(shù)指示當(dāng)前鼠標(biāo)相對(duì)控件左上角的橫縱坐標(biāo);最后一個(gè)參數(shù)“功能鍵狀態(tài)”描述事件產(chǎn)生時(shí)功能鍵(Ctrl,Shift,Alt)的狀態(tài),其值可能為以下之一或之和:1、#Ctrl鍵狀態(tài); 2、#Shift鍵狀態(tài); 4、#Alt鍵狀態(tài)。要判斷是否同時(shí)按下了某個(gè)功能鍵,在此參數(shù)的值與想要得知的功能鍵的狀態(tài)常量值之間使用“位與”命令進(jìn)行比較。如果所得的結(jié)果不為零,則表示同時(shí)按下了此功能鍵。例程。
2、鼠標(biāo)左鍵被放開(kāi)
事件的產(chǎn)生時(shí)機(jī):鼠標(biāo)左鍵被放開(kāi)時(shí)。
語(yǔ)法/參數(shù):同上
3、被雙擊
事件的產(chǎn)生時(shí)機(jī):被鼠標(biāo)雙擊時(shí)。
語(yǔ)法/參數(shù):同上
4、鼠標(biāo)右鍵被按下
事件的產(chǎn)生時(shí)機(jī):鼠標(biāo)右鍵被按下時(shí)。
語(yǔ)法/參數(shù):同上
5、鼠標(biāo)右鍵被放開(kāi)
事件的產(chǎn)生時(shí)機(jī):鼠標(biāo)右鍵被放開(kāi)時(shí)。
語(yǔ)法/參數(shù):同上
//通過(guò)在此事件中,用彈出菜單()“方法”彈出右鍵菜單。例程。
6、鼠標(biāo)位置被移動(dòng)
事件的產(chǎn)生時(shí)機(jī):鼠標(biāo)位置被移動(dòng)時(shí)。
語(yǔ)法/參數(shù):同上
//當(dāng)鼠標(biāo)指針在控件上移動(dòng)時(shí),將連續(xù)產(chǎn)生一系列本事件。例程。
7、按下某鍵
事件的產(chǎn)生時(shí)機(jī):用戶(hù)按下鍵盤(pán)上的任意鍵時(shí)。
語(yǔ)法:邏輯型 _控件名稱(chēng)_按下某鍵(鍵代碼,功能鍵狀態(tài))
參數(shù):“鍵代碼”——被按下的鍵的ASCII碼,均已被定義為常量,見(jiàn)常量表。
“功能鍵狀態(tài)”——見(jiàn)“鼠標(biāo)左鍵被按下”事件中的描述。
//常量表:見(jiàn)《易語(yǔ)言知識(shí)庫(kù)》或 系統(tǒng)支持庫(kù)。
8、放開(kāi)某鍵
事件的產(chǎn)生時(shí)機(jī):用戶(hù)放開(kāi)鍵盤(pán)上的任意鍵時(shí)。
語(yǔ)法:邏輯型 _控件名稱(chēng)_按下某鍵(鍵代碼,功能鍵狀態(tài))
參數(shù):同上
9、字符輸入
事件的產(chǎn)生時(shí)機(jī):用戶(hù)按下鍵盤(pán)上的可打印字符鍵(包括回車(chē)、退格鍵)時(shí)。
語(yǔ)法:整數(shù)型 _控件名稱(chēng)_字符輸入(字符代碼)
參數(shù):“字符代碼”——被按下的字符鍵的ASCII碼,均已被定義為常量,見(jiàn)常量表。
//本事件與按下某鍵、放開(kāi)某鍵的區(qū)別:前者只接受可打印字符鍵;而后兩者可接受所有鍵。
//“在用戶(hù)事件處理子程序中,將事件處理完畢后可返回一個(gè)字符代碼,用于替換將繼續(xù)傳遞到所屬對(duì)象上字符鍵事件中的字符代碼;如果返回 0 ,則取消此事件,不再將此事件傳遞到所屬對(duì)象上去;如果事件處理完畢后沒(méi)有返回值,則將本字符鍵事件繼續(xù)原樣傳遞到所屬對(duì)象上去。”——這是《易語(yǔ)言知識(shí)庫(kù)》中的原話,不易理解。Liigo給大家舉個(gè)例子:扔一個(gè)香蕉給猴子,它會(huì)高興的大叫。但如果這個(gè)香蕉在半空被程咬金攔截了呢,猴子還會(huì)高興的大叫嗎?顯然不會(huì),而且它什么反應(yīng)也沒(méi)有,因?yàn)樗鼔焊鶅壕筒恢烙邢憬度舆^(guò)來(lái)。有興趣的請(qǐng)看例程。
10、獲得焦點(diǎn)
事件的產(chǎn)生時(shí)機(jī):當(dāng)控件獲得輸入焦點(diǎn)時(shí)。
語(yǔ)法:_控件名稱(chēng)_獲得焦點(diǎn)()
//如果按鈕上有一個(gè)黑色細(xì)點(diǎn)組成的虛框,或者編輯框中有光標(biāo)在閃爍,表示它正在擁有輸入焦點(diǎn)。其它控件類(lèi)似。一臺(tái)機(jī)器上的所有程序的所有窗口中,同一時(shí)刻有且只有一個(gè)控件擁有輸入焦點(diǎn)。
//本事件和下面失去焦點(diǎn)的事件一樣,只有“可停留焦點(diǎn)的”控件才擁有,如:編輯框、畫(huà)板、按鈕、選擇框、單選框、組合框、列表框、選擇列表框、橫向滾動(dòng)條、縱向滾動(dòng)條、滑塊條、日期框、月歷、驅(qū)動(dòng)器框、目錄框、文件框、顏色選擇器、超級(jí)鏈接框、調(diào)節(jié)器、表格、數(shù)據(jù)源、圖形按鈕等。
11、失去焦點(diǎn)
事件的產(chǎn)生時(shí)機(jī):當(dāng)控件失去輸入焦點(diǎn)時(shí)。
語(yǔ)法:_控件名稱(chēng)_失去焦點(diǎn)()
控件的通用屬性主要有:名稱(chēng)、標(biāo)題、禁止、可視、鼠標(biāo)指針、字體、邊框、可停留焦點(diǎn)、左邊、頂邊、寬度、高度、標(biāo)記、備注等。
上述列出的屬性中,只有名稱(chēng)、左邊、頂邊、寬度、高度、標(biāo)記、備注是每個(gè)控件都擁有的屬性,其它屬性雖不是每個(gè)控件都有,但也非常常見(jiàn),故也認(rèn)為它們是控件的通用屬性。通用屬性中除了名稱(chēng)和標(biāo)題外,一般不必刻意設(shè)置——易語(yǔ)言自動(dòng)為其取最常見(jiàn)的值。
除了通用屬性外,控件一般都還有自己的特有屬性。
下面逐個(gè)講解控件的通用“屬性”:
1、名稱(chēng)
控件的唯一標(biāo)識(shí)。好比現(xiàn)實(shí)中人的身份證。放到程序中控件必須有名稱(chēng)——如果程序員未特別命名,易語(yǔ)言自動(dòng)為它按序號(hào)命名(如:按鈕1、按鈕2……編輯框1、編輯框2……等)。要想在代碼中操作控件的屬性方法和事件,就必須指定目的控件的名稱(chēng)(如:按鈕1.標(biāo)題)。
[注:如果程序較為復(fù)雜——用到的控件較多,最好自己為控件命名。為控件取一個(gè)有意義的名稱(chēng)是一個(gè)好的習(xí)慣。我個(gè)人認(rèn)為,一個(gè)好的名稱(chēng) = 功能 + 控件類(lèi)型,如“確定按鈕”“取消按鈕”“密碼編輯框”等等。另外,切不可用代碼改動(dòng)控件的名稱(chēng)!]
2、標(biāo)題
顯示于控件上的文字。主要是給程序的使用者看的,通常作為某種提示。因控件的不同,標(biāo)題出現(xiàn)的出現(xiàn)的位置可能也不一樣。如:窗口、通用對(duì)話框等有標(biāo)題欄的控件,標(biāo)題出現(xiàn)在標(biāo)題欄中;而按鈕、標(biāo)簽、單選框、選擇框、分組框、菜單等沒(méi)有標(biāo)題欄的控件,標(biāo)題出現(xiàn)在控件中央(或偏上下左右)。
3、禁止
控制控件可否被程序使用者操作。它的值只能為真或假,默認(rèn)為假,即不禁止。被禁止的控件一般表現(xiàn)為:上面的文字(即標(biāo)題)變?yōu)榛疑,單擊它沒(méi)有任何反應(yīng)。
4、可視
控制控件可否被程序使用者看到。它的值只能為真或假,默認(rèn)為真,即可以被看到。
5、鼠標(biāo)指針
當(dāng)鼠標(biāo)移動(dòng)到控件上方時(shí),鼠標(biāo)指針的形狀。本屬性一般不必改動(dòng)——易語(yǔ)言根據(jù)控件的不同,會(huì)自動(dòng)為其取一個(gè)默認(rèn)值(最常見(jiàn)的),如:按鈕上為,編輯框上為等。
6、字體
標(biāo)題文字的字體:包括字體名稱(chēng)、字體大小、加粗、傾斜、下劃線、刪除線等。注意,字體顏色一般是不生效的,標(biāo)題文字的顏色由另外的屬性(文本顏色)控制。
7、邊框
控制邊框的樣式。邊框一般有:0.無(wú)邊框、1.凹入式、2.凸出式、3.淺凹入式、4.鏡框式、5.單線邊框式等幾種樣式。對(duì)標(biāo)簽控件而言,它還有另外一個(gè)樣式:6.漸變鏡框式。而對(duì)于窗口來(lái)說(shuō),它的樣式就完全不同:0.無(wú)邊框、1.普通可調(diào)邊框、2.普通固定邊框、3.窄標(biāo)題可調(diào)邊框、4.窄標(biāo)題固定邊框、5.鏡框式可調(diào)邊框、6.鏡框式固定邊框等。
8、可停留焦點(diǎn)
設(shè)置當(dāng)用戶(hù)使用 TAB 或光標(biāo)鍵在各單元之間移動(dòng)焦點(diǎn)時(shí)是否允許在本單元上停留。它的值只能為真或假,默認(rèn)為真。如果控件的可停留焦點(diǎn)屬性為真,則控件還有另外一個(gè)屬性(停留順序)控制焦點(diǎn)停留的順序——即當(dāng)按TAB或光標(biāo)鍵時(shí),窗口上各控件獲得輸入焦點(diǎn)的順序。(如果按鈕上有一個(gè)黑色細(xì)點(diǎn)組成的虛框,或者編輯框中有光標(biāo)在閃爍,表示它正在擁有輸入焦點(diǎn)。)
9、左邊、頂邊、寬度、高度
左邊、頂邊分別是控件左上角點(diǎn)的橫縱坐標(biāo),寬度、高度就分別是控件的寬度和高度。四者的單位均為象素。注意左邊、頂邊是相對(duì)于控件的“父控件”而言的,比如我們?cè)诋?huà)板中“畫(huà)”一個(gè)按鈕,它的左邊、頂邊就是相對(duì)于畫(huà)板左上角的坐標(biāo)——這里畫(huà)板充當(dāng)了“父控件”(或稱(chēng)容器控件)。易語(yǔ)言中可以充當(dāng)父控件的控件,除了窗口和畫(huà)板,還有選擇夾、分組框、圖片框、外形框等。
。ǜ缚丶妥涌丶年P(guān)系:1、如果父控件被銷(xiāo)毀、禁止或者隱藏,其內(nèi)部的所有控件將會(huì)自動(dòng)被銷(xiāo)毀、禁止或者隱藏;2、子控件始終被限制在父控件的內(nèi)部,其坐標(biāo)位置相對(duì)于父控件的左上角;3、父控件內(nèi)的所有子控件之間存在層次關(guān)系,但是父控件與子控件之間不存在層次關(guān)系。)
。ó(dāng)任一可視控件被“畫(huà)”到或“粘貼”到某“容器控件”——可充當(dāng)父控件的控件——中時(shí),父子關(guān)系就自動(dòng)形成。要解除控件的父子關(guān)系,可將父控件中的子控件刪除或剪切掉。)
10、標(biāo)記、備注
標(biāo)記:記錄控件的附加文本信息。備注:對(duì)控件的備注信息,主要是程序員自己使用。二者的不同在于,標(biāo)記可以在程序中使用,而備注不可以——類(lèi)似調(diào)用“控件名.備注”是非法的。
二者在實(shí)際編程中很少使用。標(biāo)記還偶爾用到;備注,我敢說(shuō),99%的易友是從來(lái)不用的。
二、控件的通用“方法”
控件的通用方法主要有:取窗口句柄()、銷(xiāo)毀()、獲取焦點(diǎn)()、可有焦點(diǎn)()、取用戶(hù)區(qū)寬度()、取用戶(hù)區(qū)高度()、刷新()、移動(dòng)()、調(diào)整層次()、彈出菜單()、發(fā)送信息()、投遞信息()、取標(biāo)記單元()等。其中銷(xiāo)毀()、獲取焦點(diǎn)()、移動(dòng)()、彈出菜單()等較為常用。此外還有五個(gè)關(guān)于“重畫(huà)”的方法,很少用到。相關(guān)例程
注:所謂“方法”,說(shuō)白了也是函數(shù)(子程序),只不過(guò)“方法”是與特定控件相關(guān)聯(lián)的。“方法”與普通函數(shù)(如系統(tǒng)庫(kù)函數(shù)和自定義函數(shù))在調(diào)用的語(yǔ)法上是不一樣的——“方法”的調(diào)用:控件名稱(chēng).方法名稱(chēng)([參數(shù)...]),如 _啟動(dòng)窗口.銷(xiāo)毀();普通函數(shù)的調(diào)用:函數(shù)名稱(chēng)([參數(shù)...]),如 取系統(tǒng)時(shí)間()。
注:“方法”是“控件的”方法,“方法”總是依附于某個(gè)控件的。離開(kāi)了控件,“方法”根本無(wú)從談起。同樣的道理,“屬性”是“控件的”屬性,“事件”是“控件的”事件。屬性、方法、事件,都和控件密切相關(guān)。
下面逐個(gè)講解控件的通用“方法”:
1、取窗口句柄()
功能:取控件的“窗口句柄”,并以返回值的形式返回。
語(yǔ)法:控件名稱(chēng).取窗口句柄()
應(yīng)用實(shí)例:1、窗口句柄 = _啟動(dòng)窗口.取窗口句柄()
2、窗口句柄 = 編輯框1.取窗口句柄()
//分別取得“_啟動(dòng)窗口”“編輯框1”的窗口句柄,并存到整數(shù)型變量“窗口句柄”中。
[注:是 取“窗口句柄”,而不是取“窗口的”句柄。“窗口句柄”是一個(gè)專(zhuān)有名詞,一般在API調(diào)用時(shí)使用。。取窗口句柄()不但能夠取“窗口”的“窗口句柄”,也能取“控件”的“窗口句柄”(窗口本身就是一個(gè)特殊的控件。)][另注:只有可視控件才有“窗口句柄”;非可視控件是沒(méi)有“窗口句柄”的,不能應(yīng)用取窗口句柄()方法——比如“窗口句柄 = 時(shí)鐘1.取窗口句柄()”是非法的。]
2、銷(xiāo)毀()
功能:銷(xiāo)毀控件:使其從屏幕上消失,并在內(nèi)存中徹底刪除。
語(yǔ)法:控件名稱(chēng).銷(xiāo)毀()
應(yīng)用實(shí)例:1、_啟動(dòng)窗口.銷(xiāo)毀()
2、按鈕1.銷(xiāo)毀()
//分別銷(xiāo)毀“_啟動(dòng)窗口”和“按鈕1”。第二種用法少見(jiàn),因?yàn)槠胀ǹ丶偸悄硞(gè)窗口的子控件,當(dāng)窗口被銷(xiāo)毀時(shí),子控件也被自動(dòng)銷(xiāo)毀,所以一般不去專(zhuān)門(mén)銷(xiāo)毀普通控件(只要銷(xiāo)毀窗口就可以了)。
3、獲取焦點(diǎn)()
功能:使控件獲得輸入焦點(diǎn)。
語(yǔ)法:控件名稱(chēng).獲取焦點(diǎn)()
應(yīng)用實(shí)例:1、編輯框1.獲取焦點(diǎn)()
//使“編輯框1”獲得輸入焦點(diǎn)。這一句編程中經(jīng)常用到。(如果編輯框中有光標(biāo)——通常是閃爍的黑色豎線——則表示它已經(jīng)獲取輸入焦點(diǎn),否則表示還沒(méi)有獲取輸入焦點(diǎn)。)
4、可有焦點(diǎn)()
功能:判斷控件是否擁有輸入焦點(diǎn),返回真或假。
語(yǔ)法:控件名稱(chēng).可有焦點(diǎn)()
應(yīng)用實(shí)例:1、x = 編輯框1.可有焦點(diǎn)()
//如果“編輯框1”當(dāng)前擁有輸入焦點(diǎn),x的值為真,否則為假——x要事先定義為邏輯型變量。
5、取用戶(hù)區(qū)寬度()、取用戶(hù)區(qū)高度()
功能:取得控件“用戶(hù)區(qū)”的寬度/高度。
語(yǔ)法:控件名稱(chēng).取用戶(hù)區(qū)寬度()/取用戶(hù)區(qū)高度()
應(yīng)用實(shí)例:1、寬 = _啟動(dòng)窗口.取用戶(hù)區(qū)寬度()
2、高 = _啟動(dòng)窗口.取用戶(hù)區(qū)高度()
//分別取得“_啟動(dòng)窗口”的“用戶(hù)區(qū)”寬度和高度,并存到整數(shù)型變量“寬”和“高”中。
[注:“用戶(hù)區(qū)”——對(duì)窗口而言,用戶(hù)區(qū)域?yàn)榇翱趨^(qū)域減去標(biāo)題欄、菜單欄、邊框后的區(qū)域;對(duì)普通控件而言,用戶(hù)區(qū)域等同于其窗口單元區(qū)域。]
6、刷新()
功能:重新顯示控件中的內(nèi)容。與“刷新”屏幕是一個(gè)道理。
語(yǔ)法:控件名稱(chēng).刷新()
應(yīng)用實(shí)例:1、_啟動(dòng)窗口.刷新()
2、畫(huà)板1.刷新()
//分別刷新“_啟動(dòng)窗口”和“畫(huà)板1”。如果畫(huà)板的自動(dòng)重畫(huà)屬性為假(默認(rèn)值),則經(jīng)常刷新畫(huà)板是必要的。如果嫌麻煩,干脆把畫(huà)板的自動(dòng)重畫(huà)設(shè)為真——只是多占用些系統(tǒng)資源而已。
7、移動(dòng)()
功能:改變控件的位置和尺寸。
語(yǔ)法:控件名稱(chēng).移動(dòng)([左邊],[頂邊],[寬度],[高度])
參數(shù):分別對(duì)應(yīng)移動(dòng)后控件的左邊、頂邊、寬度和高度。四個(gè)參數(shù)均可省略。
應(yīng)用實(shí)例:1、_啟動(dòng)窗口.移動(dòng)(0,0,100,200)
2、按鈕1.移動(dòng)(,,100,50) 等效于 按鈕1.移動(dòng)(-1,-1,100,50)
//把“_啟動(dòng)窗口”移動(dòng)到(0,0),且把其寬度和高度改為100和200;不移動(dòng)“按鈕1”的位置,只把其寬度和高度改為100和50。(單位是象素。)
[注:移動(dòng)()可同時(shí)設(shè)置控件的四個(gè)屬性,如果省略某參數(shù)(或置為-1)則不改變?cè)瓉?lái)的值。本“方法”的執(zhí)行效率,與“分別為各屬性賦值”相比,要高出許多倍,特別是在循環(huán)中。推薦使用。]
8、調(diào)整層次()
功能:調(diào)整控件所處層次。
語(yǔ)法:控件名稱(chēng).調(diào)整層次([欲調(diào)整到的層次])
參數(shù):整數(shù)型,可以為以下常量之一: 1、#頂層; 2、#底層; 3、#最高層; 4、#次高層。如果被省略,默認(rèn)為“#頂層”。
應(yīng)用實(shí)例:1、_啟動(dòng)窗口.調(diào)整層次(#最高層) 或 _啟動(dòng)窗口.調(diào)整層次(3)
2、按鈕1.調(diào)整層次(#頂層) 或 按鈕1.調(diào)整層次(1)
//把“”調(diào)整到最高層;把“按鈕1”調(diào)整到頂層。
[注:做個(gè)實(shí)驗(yàn),在窗口上畫(huà)一個(gè)“按鈕1”,再畫(huà)一個(gè)“按鈕2”,然后把“按鈕2”拖到“按鈕1”上,會(huì)發(fā)現(xiàn)“按鈕2”把“按鈕1”遮住了!這就說(shuō)明了兩者的層次關(guān)系:“按鈕2”在“按鈕1”的上方,高一個(gè)層次。][注:#最高層——機(jī)器中所有程序的所有窗口的最前面;#頂層——本程序內(nèi)所有控件的最前面。#底層與#頂層 相對(duì);#次高層 位于#最高層 下一層。][注:對(duì)于普通控件,通常調(diào)整到#頂層就可以了;對(duì)于窗口這個(gè)特殊控件,有時(shí)需要調(diào)整到#最高層——在所有窗口的最前面。]
9、彈出菜單()
功能:彈出菜單(通常是右鍵菜單)
語(yǔ)法:控件名稱(chēng).彈出菜單( 欲彈出的菜單,[水平顯示位置],[垂直顯示位置])
參數(shù):第一個(gè)參數(shù)是欲彈出的菜單;后兩個(gè)是菜單彈出后左上角的橫縱坐標(biāo),如省略將自動(dòng)使用當(dāng)前鼠標(biāo)位置。
應(yīng)用實(shí)例:1、彈出菜單(文件,,)
//在當(dāng)前鼠標(biāo)所在位置彈出“文件”菜單。這種寫(xiě)法最常見(jiàn)。這行代碼通常都放在某控件的“鼠標(biāo)右鍵被按下”或“鼠標(biāo)右鍵被放開(kāi)”事件處理子程序中。彈出菜單()前面通常不必帶控件名稱(chēng)。
10、發(fā)送信息()、投遞信息()
功能:將指定信息發(fā)送到控件。
語(yǔ)法:控件名稱(chēng).發(fā)送信息(信息值,參數(shù)1,參數(shù)2)
控件名稱(chēng).投遞信息(信息值,參數(shù)1,參數(shù)2)
參數(shù):第一個(gè)參數(shù)是欲發(fā)送或投遞的信息值;后兩個(gè)是輔助信息。
應(yīng)用實(shí)例:1、編輯框1.發(fā)送信息(769,0,0) //復(fù)制“編輯框1”中被選中的文本。
2、編輯框1.發(fā)送信息(770,0,0) //把剪貼板中的文本粘貼到“編輯框1”。
[注:發(fā)送信息、投遞信息的區(qū)別:前者并等待且取回信息反饋值;后者不等待直接返回。]
11、取標(biāo)記單元()
功能:前窗口中具有指定標(biāo)記數(shù)值文本的單元(控件)。
語(yǔ)法:控件名稱(chēng).取標(biāo)記單元(標(biāo)記數(shù)值)
參數(shù):整數(shù)型,欲尋找單元的“標(biāo)記”屬性的數(shù)值形式。(“123”->123)
應(yīng)用實(shí)例:1、取標(biāo)記單元(123)
//如果此前令“按鈕1”的“標(biāo)記”屬性為“123”,則上述代碼的返回值為“按鈕1”。
三、控件的通用“事件”
控件的通用“事件”主要有:1、鼠標(biāo)左鍵被按下;2、鼠標(biāo)左鍵被放開(kāi);3、被雙擊;4、鼠標(biāo)右鍵被按下;5、鼠標(biāo)右鍵被放開(kāi);6、鼠標(biāo)位置被移動(dòng);7、按下某鍵;8、放開(kāi)某鍵;9、字符輸入;10、獲得焦點(diǎn);11、失去焦點(diǎn)。易語(yǔ)言中的可視控件,都有上述事件。除了這些通用事件,控件一般都還有自己的專(zhuān)有事件。
事件的產(chǎn)生由易語(yǔ)言系統(tǒng)全權(quán)負(fù)責(zé)。當(dāng)某一事件產(chǎn)生時(shí),系統(tǒng)將自動(dòng)調(diào)用該事件所對(duì)應(yīng)的“事件處理子程序”。編程者所要做的,只是根據(jù)需要選擇要響應(yīng)的事件,并在該事件的“事件處理子程序”中輸入代碼即可。
每一個(gè)事件都有它的產(chǎn)生時(shí)機(jī)。有的事件其產(chǎn)生時(shí)機(jī)非常明顯,如鼠標(biāo)左鍵被按下、鼠標(biāo)左鍵被放開(kāi)……等,就是在鼠標(biāo)左鍵被按下或放開(kāi)時(shí)產(chǎn)生;而有的事件其產(chǎn)生時(shí)機(jī)就不太明顯,這個(gè)到時(shí)我會(huì)分別介紹。
在《易語(yǔ)言知識(shí)庫(kù)》中,除了獲得焦點(diǎn)和失去焦點(diǎn),對(duì)其它事件的解釋都有這么一句:“處理本事件的子程序如果返回假,則取消本事件,不再將此事件傳遞到所屬對(duì)象上去;如果不返回值或返回真,則將此事件繼續(xù)傳遞到所屬對(duì)象上去。” 相信大家會(huì)比較迷惑,讓我們做個(gè)試驗(yàn):在設(shè)計(jì)窗口中放一個(gè)編輯框控件,在“_編輯框1_鼠標(biāo)右鍵被放開(kāi)”中輸入: 鳴叫() 再加一行代碼:返回(假) 運(yùn)行程序,在編輯框中按右鍵時(shí),只會(huì)有喇叭或音箱叫一聲,卻不再?gòu)棾隹旖莶藛瘟恕#ㄎ覀兌贾,在編輯框中按下鼠?biāo)右鍵并放開(kāi)時(shí),通常會(huì)彈出一快捷菜單。)分析一下為什么會(huì)這樣呢?因?yàn)榫庉嬁虻?ldquo;鼠標(biāo)右鍵被放開(kāi)”事件被我們半路攔截了,編輯框根本沒(méi)有收到“鼠標(biāo)右鍵被放開(kāi)”事件,也就是說(shuō),被我們做了手腳,它還蒙在鼓里呢^_^ (再考慮一下,如果前面代碼只寫(xiě)鳴叫()而不加返回(假)呢?結(jié)果是,在編輯框中右鍵放開(kāi)時(shí),先叫一聲再?gòu)棾霾藛巍2恍拍囈辉!例程?br data-filtered="filtered" /> 下面逐個(gè)講解控件的通用“事件”:
1、鼠標(biāo)左鍵被按下
事件的產(chǎn)生時(shí)機(jī):鼠標(biāo)左鍵被按下時(shí)。
語(yǔ)法:邏輯型 _控件名稱(chēng)_鼠標(biāo)左鍵被按下(橫向位置,縱向位置,功能鍵狀態(tài))
參數(shù):前兩個(gè)參數(shù)指示當(dāng)前鼠標(biāo)相對(duì)控件左上角的橫縱坐標(biāo);最后一個(gè)參數(shù)“功能鍵狀態(tài)”描述事件產(chǎn)生時(shí)功能鍵(Ctrl,Shift,Alt)的狀態(tài),其值可能為以下之一或之和:1、#Ctrl鍵狀態(tài); 2、#Shift鍵狀態(tài); 4、#Alt鍵狀態(tài)。要判斷是否同時(shí)按下了某個(gè)功能鍵,在此參數(shù)的值與想要得知的功能鍵的狀態(tài)常量值之間使用“位與”命令進(jìn)行比較。如果所得的結(jié)果不為零,則表示同時(shí)按下了此功能鍵。例程。
2、鼠標(biāo)左鍵被放開(kāi)
事件的產(chǎn)生時(shí)機(jī):鼠標(biāo)左鍵被放開(kāi)時(shí)。
語(yǔ)法/參數(shù):同上
3、被雙擊
事件的產(chǎn)生時(shí)機(jī):被鼠標(biāo)雙擊時(shí)。
語(yǔ)法/參數(shù):同上
4、鼠標(biāo)右鍵被按下
事件的產(chǎn)生時(shí)機(jī):鼠標(biāo)右鍵被按下時(shí)。
語(yǔ)法/參數(shù):同上
5、鼠標(biāo)右鍵被放開(kāi)
事件的產(chǎn)生時(shí)機(jī):鼠標(biāo)右鍵被放開(kāi)時(shí)。
語(yǔ)法/參數(shù):同上
//通過(guò)在此事件中,用彈出菜單()“方法”彈出右鍵菜單。例程。
6、鼠標(biāo)位置被移動(dòng)
事件的產(chǎn)生時(shí)機(jī):鼠標(biāo)位置被移動(dòng)時(shí)。
語(yǔ)法/參數(shù):同上
//當(dāng)鼠標(biāo)指針在控件上移動(dòng)時(shí),將連續(xù)產(chǎn)生一系列本事件。例程。
7、按下某鍵
事件的產(chǎn)生時(shí)機(jī):用戶(hù)按下鍵盤(pán)上的任意鍵時(shí)。
語(yǔ)法:邏輯型 _控件名稱(chēng)_按下某鍵(鍵代碼,功能鍵狀態(tài))
參數(shù):“鍵代碼”——被按下的鍵的ASCII碼,均已被定義為常量,見(jiàn)常量表。
“功能鍵狀態(tài)”——見(jiàn)“鼠標(biāo)左鍵被按下”事件中的描述。
//常量表:見(jiàn)《易語(yǔ)言知識(shí)庫(kù)》或 系統(tǒng)支持庫(kù)。
8、放開(kāi)某鍵
事件的產(chǎn)生時(shí)機(jī):用戶(hù)放開(kāi)鍵盤(pán)上的任意鍵時(shí)。
語(yǔ)法:邏輯型 _控件名稱(chēng)_按下某鍵(鍵代碼,功能鍵狀態(tài))
參數(shù):同上
9、字符輸入
事件的產(chǎn)生時(shí)機(jī):用戶(hù)按下鍵盤(pán)上的可打印字符鍵(包括回車(chē)、退格鍵)時(shí)。
語(yǔ)法:整數(shù)型 _控件名稱(chēng)_字符輸入(字符代碼)
參數(shù):“字符代碼”——被按下的字符鍵的ASCII碼,均已被定義為常量,見(jiàn)常量表。
//本事件與按下某鍵、放開(kāi)某鍵的區(qū)別:前者只接受可打印字符鍵;而后兩者可接受所有鍵。
//“在用戶(hù)事件處理子程序中,將事件處理完畢后可返回一個(gè)字符代碼,用于替換將繼續(xù)傳遞到所屬對(duì)象上字符鍵事件中的字符代碼;如果返回 0 ,則取消此事件,不再將此事件傳遞到所屬對(duì)象上去;如果事件處理完畢后沒(méi)有返回值,則將本字符鍵事件繼續(xù)原樣傳遞到所屬對(duì)象上去。”——這是《易語(yǔ)言知識(shí)庫(kù)》中的原話,不易理解。Liigo給大家舉個(gè)例子:扔一個(gè)香蕉給猴子,它會(huì)高興的大叫。但如果這個(gè)香蕉在半空被程咬金攔截了呢,猴子還會(huì)高興的大叫嗎?顯然不會(huì),而且它什么反應(yīng)也沒(méi)有,因?yàn)樗鼔焊鶅壕筒恢烙邢憬度舆^(guò)來(lái)。有興趣的請(qǐng)看例程。
10、獲得焦點(diǎn)
事件的產(chǎn)生時(shí)機(jī):當(dāng)控件獲得輸入焦點(diǎn)時(shí)。
語(yǔ)法:_控件名稱(chēng)_獲得焦點(diǎn)()
//如果按鈕上有一個(gè)黑色細(xì)點(diǎn)組成的虛框,或者編輯框中有光標(biāo)在閃爍,表示它正在擁有輸入焦點(diǎn)。其它控件類(lèi)似。一臺(tái)機(jī)器上的所有程序的所有窗口中,同一時(shí)刻有且只有一個(gè)控件擁有輸入焦點(diǎn)。
//本事件和下面失去焦點(diǎn)的事件一樣,只有“可停留焦點(diǎn)的”控件才擁有,如:編輯框、畫(huà)板、按鈕、選擇框、單選框、組合框、列表框、選擇列表框、橫向滾動(dòng)條、縱向滾動(dòng)條、滑塊條、日期框、月歷、驅(qū)動(dòng)器框、目錄框、文件框、顏色選擇器、超級(jí)鏈接框、調(diào)節(jié)器、表格、數(shù)據(jù)源、圖形按鈕等。
11、失去焦點(diǎn)
事件的產(chǎn)生時(shí)機(jī):當(dāng)控件失去輸入焦點(diǎn)時(shí)。
語(yǔ)法:_控件名稱(chēng)_失去焦點(diǎn)()
上一篇:沒(méi)有了 [返回列表]
說(shuō)點(diǎn)什么吧
- 全部評(píng)論(0)
還沒(méi)有評(píng)論,快來(lái)?yè)屔嘲l(fā)吧!