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

首頁 > 編程 > Delphi > 正文

Delphi深度探索-數據庫明了的ActiveX控件

2019-11-18 18:41:27
字體:
來源:轉載
供稿:網友

Delphi深度探索-數據庫明了的ActiveX控件

   強大的數據庫開發功能無疑是Delphi王冠上的明珠,至少有80%以上的人每天使用Delphi來開發數據庫程序?;诜e木式的VCL數據庫控件,以及Dev ExPRess和Woll2Woll等公司提供的強大的第三方數據庫明了控件,毫不夸張的說只需要簡單的設置一下屬性,拖拉幾下鼠標我們就可以非??焖俚耐瓿蓴祿斐绦虻拈_發。由于Delphi的數據庫功能過于強大了,所以很多人就忽視了一個事實,就是ActiveX同樣可以提供靈活的數據庫綁定,遺憾的是Delphi本身所提供的幾個第三方的ActiveX控件中沒有一個是數據庫明了的控件,這間接導致了一個誤解,使得很多人誤以為Delphi并不支持數據明了的ActiveX控件(也包括很久以前的我J)。這當然是錯誤的看法。
    在Delphi中使用數據明了的ActiveX控件
    在下面的例子中,我們將使用隨Office 2000安裝到系統中的Microsoft Calendar 9.0控件來進行演示,它就是一個數據明了控件。選擇Component | Import ActiveX Control,選擇Microsoft Calendar 9.0(見下圖1.12),把類名從TCalendar改成TAXCalendar,以避免同系統中原有的同名控件沖突,然后點Install按鈕安裝此控件。

圖1.12
 

 
 
 
 
 
 
 
 
 
 
 
 

    新建一個程序,在窗體上放置一個TAXCalendar控件。再放上一個DataSource 和Table控件。設定DataSource的Dataset為Table1,然后設定Table1的DataBaseName 屬性為DBDEMOS,TableName 屬性為EMPLOYEE.DB,最后設定Table1.Active屬性為True。
    接下來就該進行數據庫綁定了,注意一下引入的TAXCalendar具有DataSource和DataBindings這兩個同一般ActiveX控件不同的屬性,這是因為ActiveX Import Wizard在引入ActiveX控件先判斷是否是數據庫明了的控件,如果是就以TDBOleControl作為基類進行繼承,如果不是就從TOleControl開始繼承。而TDBOleControl實現了DataBindings和DataSource屬性。設定AXCalendar1.DataSource屬性為Datasource1。
    這時我們在窗體上用鼠標右鍵單擊TAXCalendar控件的話,會發現在右鍵菜單中多出了一個DataBindings…菜單項(見下圖1.13)。
 

圖1.13
 

 
 
 
 
 
 
 
 
 

    點擊菜單項后,會顯示數據綁定屬性編輯框(見下圖1.14)。分別在FieldName列表框中選定HireDate,在Property Name列表框中選擇Value(12)(其中12是Value的Dispid號),點擊Bind按鈕,就會在數據庫字段和Value屬性間建立數據關聯。

圖1.14
 

 
 
 
 
 
 
 
 
 
 
 

    最后,再在窗體上放置一個DBGrid和DBNavigator控件,并設定它們的DataSource為DataSource1。運行程序,移動當前數據位置的時候,你可以注意到ActiveX的日期顯示也會隨之變化,同數據庫中的Hiredate保持一致。如圖1.15所示:

圖1.15
 

 
 
 
 
 
 
 
 
 
 
 
 

    創建數據明了的ActiveX控件
雖然我們已經清楚了Delphi的確可以使用數據明了的ActiveX控件,那么一個新的問題就產生了,Delphi本身可不可以創建數據明了的ActiveX控件呢?由于Delphi提供了一步到位的ActiveX控件轉換生成,就有很多人希望能夠把Delphi中強大的數據庫控件轉換為ActiveX控件,以便能在其他支持ActiveX的開發環境開發數據庫程序時仍然能夠享受到象在Delphi中一樣的輕松愉快的感覺。但是我在前面第一部分中已經提到了,由于Delphi的數據明了控件同ActiveX數據庫控件的在內部機制上差距過大,因此Delphi無法簡單的直接轉換其強大的數據庫控件。那么是不是就意味我們就沒有辦法了呢?of course not! 其實使用類型庫編輯器,我們可以異常輕松的實現數據明了的ActiveX控件,就讓我們用TEdit控件來試驗一下,看看如何去做。
選菜單命令New | ActiveX | ActiveX Control啟動ActiveX Control Convert Wizard,選TEdit控件作為轉化對象,生成EditX ActiveX框架。
    接下來,我們將改造TEdit的Text屬性,使其支持數據綁定。選 View | Type Library來察看Delphi生成的類型庫,并選中Text屬性,然后切換到Flags屬性頁(見下圖1.16)。
 

圖1.16
 

 
 
 
 
 
 
 
 
 
 

    注意在Flags屬性頁有很多多選框,對于我們來說,只關心同數據綁定相關的選項。它們是Bindable,Display Bindable,Default Bindable,Immediate Bindable和Request Edit選項。
    標記一個屬性為bindable后,并將其同數據庫字段綁定后,當用戶修改了屬性后,控件就會通知數據庫值已經變化,并請求數據庫記錄更新狀況,數據庫反過來也會通知記錄更新是否成功。
    Bindable選項表明屬性支持數據綁定,如果把屬性標記為bindable,屬性將在其值變化時通知其容器。
    Request Edit表明屬性支持OnRequestEdit 通知消息,這允許控件詢問容器屬性值是否允許用戶修改。
    Display Bindable表示容器可以向用戶顯示這個屬性是可綁定的。
    Default Bindable表示它是唯一的,缺省的可綁定屬性,使用它必須同時標記了Bindable屬性。
    Immediate Bindable當被標記時,所有的改變都會被通知,同時還需要設定bindable和Request Edit標記。
    下面我們就標記EditX控件的Text屬性為Bindable,Display Bindable,Default Bindable,和Request Edit。然后點Refresh按鈕刷新類型庫,最后選Run | Register ActiveX Server注冊ActiveX控件。
    再引入新的EditX ActiveX控件,就會發現它確實實現了數據綁定的功能,下面就是一個使用了數據明了的EditX的程序的運行示意圖1.17,(Delphi的ActiveX數據明了功能的實現的確簡單很COOL,不是嗎?。

上一篇:讓彩色光標出現在Delphi程序中

下一篇:先人的DELPHI基礎開發技巧

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩精品视频| 亚洲老司机av| 欧美日韩视频在线| 91精品久久久久久久久久久| 中文字幕精品av| 97热精品视频官网| 蜜月aⅴ免费一区二区三区| 日韩免费看的电影电视剧大全| 97视频在线观看成人| 精品久久久久久久中文字幕| 在线观看成人黄色| 日韩高清a**址| 国产精品免费网站| 国产97色在线|日韩| 91av免费观看91av精品在线| 精品亚洲va在线va天堂资源站| 一本大道香蕉久在线播放29| 欧美亚洲第一区| 欧美高清一级大片| 亚洲女人被黑人巨大进入al| 69视频在线播放| 国精产品一区一区三区有限在线| 中文字幕日韩av综合精品| 亚洲欧美国产制服动漫| 成人中文字幕在线观看| 欧美亚洲国产成人精品| 欧美电影在线观看高清| 免费91麻豆精品国产自产在线观看| 久久久国产精彩视频美女艺术照福利| 国内揄拍国内精品少妇国语| 久久亚洲精品中文字幕冲田杏梨| 国产这里只有精品| 亚洲欧美精品在线| 日本久久精品视频| 隔壁老王国产在线精品| 色伦专区97中文字幕| 777午夜精品福利在线观看| 91av在线看| 中文字幕日韩精品在线| 中文字幕久热精品视频在线| 精品久久国产精品| 欧美激情网友自拍| 亚洲欧美日韩天堂一区二区| 91福利视频在线观看| 亚洲毛片在线观看.| 欧美成人免费网| 欧美性视频精品| 欧美日韩亚洲精品一区二区三区| 国产精品一区二区久久| 欧美天天综合色影久久精品| 一本色道久久88综合亚洲精品ⅰ| 亚洲最大成人在线| 亚洲国产精品一区二区久| 精品国产一区av| 一区二区三区www| 精品国内亚洲在观看18黄| 成人福利视频在线观看| 成人激情黄色网| 欧美电影在线免费观看网站| 久久精品亚洲一区| 久久久久久久久亚洲| 57pao成人国产永久免费| 欧美日韩一二三四五区| 国产91在线播放九色快色| 亚洲国产精品字幕| 中文字幕亚洲一区在线观看| 狠狠干狠狠久久| 91国偷自产一区二区三区的观看方式| 国产日韩精品入口| 青青草精品毛片| 成人欧美一区二区三区黑人孕妇| 一区二区三区视频免费| 一区二区日韩精品| 欧美一二三视频| 日韩精品中文字| 亚洲精品福利视频| 久久露脸国产精品| 激情成人在线视频| 九九九热精品免费视频观看网站| 色先锋资源久久综合5566| 国产精自产拍久久久久久蜜| 亚洲一区二区自拍| 亚洲欧美激情精品一区二区| 亚洲女人天堂成人av在线| 在线观看日韩欧美| 中文字幕亚洲第一| 国产精品成熟老女人| 91精品久久久久久久久| 欧美孕妇孕交黑巨大网站| 日本久久久久久久| 欧美在线观看网址综合| 成人写真视频福利网| 91精品久久久久久久久中文字幕| 全球成人中文在线| 色婷婷亚洲mv天堂mv在影片| 岛国av一区二区| 91影院在线免费观看视频| 国产免费一区二区三区香蕉精| 2019中文字幕免费视频| 亚洲第一区中文字幕| 午夜精品一区二区三区视频免费看| 麻豆乱码国产一区二区三区| 久久国产精品久久精品| 亚洲欧美国产另类| 91高潮在线观看| 另类图片亚洲另类| 51精品在线观看| 日韩中文在线视频| 国产精品欧美日韩一区二区| 国产精品电影观看| 久久精品国产69国产精品亚洲| 欧美日韩一区二区精品| 亚洲欧洲高清在线| 欧美日韩中文字幕| 亚洲自拍欧美色图| 91精品久久久久久久久久另类| 亚洲精品欧美一区二区三区| 亚洲精品久久久一区二区三区| 国产一区二区视频在线观看| 成人激情在线播放| 国产日韩换脸av一区在线观看| 欧美成人高清视频| 日本一区二区在线免费播放| 久久精品99久久久久久久久| 美女久久久久久久久久久| 亚洲男人7777| 日韩电影第一页| 亚洲成人激情图| 欧美电影免费观看大全| 色yeye香蕉凹凸一区二区av| 91av在线精品| 成人免费高清完整版在线观看| 亚洲区免费影片| 日韩精品极品在线观看| 成人在线精品视频| 青青青国产精品一区二区| 热久久99这里有精品| 日韩中文字幕亚洲| 国产在线精品成人一区二区三区| 欧美另类精品xxxx孕妇| 色综合亚洲精品激情狠狠| 另类色图亚洲色图| 成人激情视频免费在线| 萌白酱国产一区二区| 国产精品女人网站| 午夜精品福利在线观看| 欧美性极品xxxx娇小| 国产综合久久久久久| 国产精品爽爽爽爽爽爽在线观看| 久久久久国产精品www| 亚洲视频免费一区| 亚洲第一免费播放区| 人人做人人澡人人爽欧美| 国产精品久久久久77777| 欧美高跟鞋交xxxxhd| www.欧美精品一二三区| 91精品国产乱码久久久久久蜜臀| 91精品中国老女人| 国产精品99一区| 久久99久久久久久久噜噜| 国产99视频在线观看| 久久综合国产精品台湾中文娱乐网| 亚洲一区二区黄| 国产美女精彩久久|