亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C++ Builder 使用動作

2019-11-17 05:22:33
字體:
來源:轉載
供稿:網友

  4.9.2 使用動作

可以從組件面板的Standard頁將動作列表加入窗體或數據模塊。雙擊動作列表可顯示ActionList編輯器,在其中可增加、刪除或重排動作。每個動作的屬性(Name除外)值都將應用于其客戶控件??稍趯ο笥^察器中設置每個動作的屬性。Name定義動作,而其他屬性與事件(Caption、Checked、Enabled、HelpContext、Hint、ImageIndex、ShortCut、Visible和Execute)則對應于客戶控件的屬性。它們通常(不一定全是)和客戶屬性同名。例如動作的Checked屬性對應于TToolButton的Down屬性。

1.集中處理程序代碼
所有控件都包括一個公共的屬性Action,它使控件可作為動作對象的客戶使用。一般用做動作對象的客戶的控件,如TToolButton、TSpeedButton、TMenuItem和TButton會發布Action屬性以便可在設計時建立客戶/動作的關系。當為動作列表的某個動作設置Action屬性時,動作的對應屬性值將復制到客戶控件中。動作對象的所有公共屬性與事件(除Name和Tag之外)都動態地鏈接到客戶控件。例如,當需要禁用按鈕和菜單項時,可將相應的程序代碼集中在動作對象內,而不必去為按鈕和菜單項重復編制程序代碼;這樣,當動作被禁用時,所有對應的按鈕和菜單項都會被禁用。

注重 假如使用工具按鈕或菜單項,必須用手工方式將對應的工具欄或菜單組件的Images屬性設置為動作列表的Images屬性。即使ImageIndex屬性已動態地鏈接到客戶,也必須如此。

2.鏈接屬性
當設置了客戶的Action屬性后,建立了客戶控件和動作之間的鏈接。這種鏈接由客戶的動作鏈接治理,它可將客戶的屬性與動作的屬性關聯起來。當動作改變時,動作鏈接更新客戶屬性。
可有選擇地重載客戶的某一屬性與相關動作對應屬性的鏈接。在設計時設置客戶的某值,只影響該屬性的鏈接,客戶的屬性改變,而相關動作對應的屬性值不變,客戶與相關動作其他的鏈接也不受影響。應用程序并不需要顯式處理動作鏈接來使用動作。動作鏈接自動治理客戶與動作相應屬性的鏈接。
每個獨立的客戶控件都使用不同的動作鏈接類,每個類中都有一組可用于與動作鏈接的屬性。

注重可通過查閱VCL參考的動作鏈接類部分來決定要與動作鏈接的客戶控件的屬性。

3.執行動作
當客戶組件或控件被按下之后,其相關動作的OnExecute事件將會發生。下列程序代碼介紹的
OnExecute事件處理程序,可在動作執行時顯示或隱藏工具欄:
C++ Builder 使用動作(圖一)
當用戶點擊客戶控件時,客戶會為其相關動作生成OnExecute事件。若該事件存在事件處理程序,用戶點擊動作將直接被處理。除非需要與其他事件處理程序共享代碼或編寫定制的、可重用的動作,否則只需加入動作到動作列表,設置其屬性,編寫OnExecute事件處理程序代碼,并通過設置Action屬性將其與所有相關控件鏈接。
若要編寫一個事件處理程序包含對多個動作的響應,可編寫一個響應動作列表甚或應用程序層的事件處理程序。C++Builder遵循一個分發流程以搜索響應用戶動作的方法。
考慮一個例子,組件顯示在圖4-11中。客戶Speedbutton1鏈接Cut1動作(Speedbutton1的Action屬性為Cut1)。圖4-11顯示當用戶單擊Speedbutton1后的發送(dispatching)流程。
C++ Builder 使用動作(圖二) 單擊Speedbutton1將啟動下列的執行流程:
1) 因為Speedbutton1的Action屬性為Cut1,Cut1接收到OnExecute事件,若Cut1存在OnExecute事件處理程序,進程在此終止。若Cut1不存在OnExecute事件處理程序,則進程繼續。
2) 因為Cut1不存在OnExecute事件處理程序,流程順延由其動作列表(ActionList1)處理事件。ActionList1接收到OnExecute事件(動作列表的OnExecute事件,在其中任一動作沒有OnExecute事件處理程序用以處理事件時發生),動作列表的OnExecute事件處理程序有一參數Handled,其缺省返回值為false,若處理程序存在并處理了事件,返回true,且進程在此終止。

例如:
C++ Builder 使用動作(圖三)
若動作列表的OnExecute事件未被處理,則進程繼續。

3)全局對象application接收到OnActionExecute事件(該事件在應用程序中所有的動作列表都無法處理事件時發生),與動作列表的OnExecute事件處理程序相同,OnActionExecute事件處理程序也有一參數Handled,其缺省返回值為false。若處理程序存在并處理了事件,返回true,且進程在此終止。例如:
C++ Builder 使用動作(圖四)

4)對于可用事件處理程序響應的動作,進程到此終止。但對于預定義的動作類,如Cut1,則進程并未結束。你可使用內置的動作類或自行生成知道如何確定目標的動作類(如編輯控件)。當所有層次都未發現事件處理程序時,應用程序將試圖搜索動作執行的目標,當應用程序找到哪個動作知道如何定位的目標時,將激活動作。參見4.9.4節的“動作如何搜索其目標”可獲得關于應用程序如何找到那些預定義的動作類的目標的更多內容。

4.更新動作
當應用程序空閑時,所有與當前正顯示的控件或菜單鏈接的動作的OnUpdate事件發生。這給應用程序代碼集中處理提供了可用與禁用或復選與否等等的時機。例如,下列代碼舉例說明當菜單欄可見時OnUpdate處理動作的“復選”的事件處理程序。
C++ Builder 使用動作(圖五)

更新動作的分發流程與本節中討論的“執行動作”中的分發流程相同。
警告 不要把費時的代碼加到OnUpdate事件處理程序中。OnUpdate事件處理程序在應用程序空閑時執行。若事件處理程序需要太多時間,會影響整個應用程序的執行。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
黑人精品xxx一区一二区| 亚洲香蕉在线观看| 亚洲欧美日韩另类| 欧美激情视频一区二区| 久久99精品久久久久久琪琪| 日本韩国欧美精品大片卡二| 国产美女主播一区| 中文日韩在线观看| 欧美在线视频免费| 欧美黑人一区二区三区| 欧美久久久精品| 国产精品第10页| 国产精品电影久久久久电影网| 黑人巨大精品欧美一区二区三区| 国产精品www| 国产精品青青在线观看爽香蕉| 91久久国产婷婷一区二区| 亚洲激情免费观看| 92版电视剧仙鹤神针在线观看| 久久国产精品电影| 日韩高清av在线| 成人激情免费在线| 尤物tv国产一区| 欧美日韩免费在线观看| 日韩成人免费视频| 91欧美精品午夜性色福利在线| 欧美日韩激情视频| 久久久爽爽爽美女图片| 国产精品偷伦免费视频观看的| 欧美疯狂做受xxxx高潮| 日韩免费在线播放| 欧美激情亚洲一区| 亚洲欧洲在线免费| 人人做人人澡人人爽欧美| 国产精品电影在线观看| 2019中文字幕全在线观看| 欧美一级淫片播放口| 伊人久久五月天| 成人乱人伦精品视频在线观看| 久久在线视频在线| 欧美大片欧美激情性色a∨久久| 欧美巨猛xxxx猛交黑人97人| 亚洲欧美变态国产另类| 精品亚洲一区二区三区在线播放| 久青草国产97香蕉在线视频| 久久久成人av| 亚洲国产精品人人爽夜夜爽| 国产精品吴梦梦| 亚洲视频在线看| 欧美电影免费播放| 在线观看国产欧美| 成人久久一区二区三区| 日韩大胆人体377p| 51久久精品夜色国产麻豆| 欧美日韩精品在线播放| 久久久久久av| 欧美一区二区三区……| 欧美激情区在线播放| 欧美午夜视频在线观看| 久久精品国产清自在天天线| 亚洲国产日韩欧美综合久久| 国产精品三级网站| www亚洲精品| 欧美精品在线免费| 黄色精品在线看| 国产精品在线看| 亚洲男人的天堂在线| 久久精视频免费在线久久完整在线看| www.欧美三级电影.com| 伊人成人开心激情综合网| 欧美日韩第一视频| 色午夜这里只有精品| 国产精品福利在线| 日韩第一页在线| 成人av资源在线播放| 成人免费视频xnxx.com| 欧美亚洲视频在线观看| 亚洲成av人片在线观看香蕉| 欧美色欧美亚洲高清在线视频| 中文字幕日韩精品在线| 亚洲美女自拍视频| 国产成人在线播放| 国产成人一区二区三区小说| 欧美日韩国产影院| 国产精品一区二区性色av| 国产精品男女猛烈高潮激情| 日韩高清电影免费观看完整版| 欧美与欧洲交xxxx免费观看| 欧美激情在线视频二区| 人九九综合九九宗合| 久久伊人精品天天| 亚洲裸体xxxx| 亚洲欧美中文日韩在线v日本| 欧美日韩黄色大片| 亚洲成色777777在线观看影院| 日韩美女视频在线观看| 伊人亚洲福利一区二区三区| 国产欧美久久久久久| 亚洲电影免费观看高清完整版在线| 欧美日韩在线视频一区| 欧美黑人一区二区三区| 亲子乱一区二区三区电影| 久久精品国产v日韩v亚洲| 黄色成人在线播放| 91成人精品网站| 久久精品亚洲国产| 欧美性xxxxxx| 国产一区二区免费| 精品国产欧美一区二区三区成人| 久久中国妇女中文字幕| 欧美日韩一区二区免费在线观看| 国产日韩视频在线观看| 日韩精品视频免费专区在线播放| 国产精品久久久久久久久| 欧美日本亚洲视频| 欧美日韩在线免费观看| 欧美国产激情18| 日韩中文在线不卡| 亚洲91av视频| 亚洲国产精品人久久电影| 日韩欧美a级成人黄色| 欧美性极品少妇精品网站| 国产综合香蕉五月婷在线| 国产精品青青在线观看爽香蕉| 欧美大片欧美激情性色a∨久久| 高清欧美性猛交xxxx| 日本欧美中文字幕| 爽爽爽爽爽爽爽成人免费观看| 亚洲字幕一区二区| 色综合导航网站| 日本精品久久久久影院| 国产精品视频久久久久| 国产视频精品va久久久久久| 亚洲美女性生活视频| 国产精品 欧美在线| 日韩中文视频免费在线观看| 久久国产精品久久久久久| 8x拔播拔播x8国产精品| 91精品久久久久久久久| 久青草国产97香蕉在线视频| 91精品中国老女人| 在线电影av不卡网址| 中文字幕亚洲一区二区三区| 欧美成人高清视频| 国产精品一区二区性色av| 在线精品视频视频中文字幕| 国产精品成人在线| 亚洲精品永久免费精品| 91国产美女在线观看| 欧美成人一二三| 国产精品久久久久不卡| 欧美激情xxxxx| 久久亚洲国产精品成人av秋霞| 亚洲国产精品va| 欧美激情一区二区三级高清视频| 亚洲国产成人在线播放| 日本精品免费观看| 日韩激情视频在线播放| 久久成人在线视频| 国产精品自产拍在线观| 亚洲一区中文字幕| 亚洲aⅴ日韩av电影在线观看| 久久亚洲精品视频| 亚洲成成品网站|