1 / 81

第三章 以 Borland C++ Builder 開發 視窗介面為基之 I/O 控制技術

第三章 以 Borland C++ Builder 開發 視窗介面為基之 I/O 控制技術. 內容大綱. 緒論 微電腦 I/O 控制系統 圖形介面暨視窗為基的應用程式 Borland C++ Builder 程式開發 本書實習實作使用到的 BCB VCL 元件 總結. 緒論. 微電腦 I/O 控制系統到處可見 控制技術良劣,會影響操控效能 本書探討個人電腦 I/O 控制技術 使用 PC 的輸出入埠,進行控制資料的輸出入 操控介面完全仰賴控制軟體 圖形為主的視窗介面控制技術. 緒論 ( 續 ). 個人電腦平台下的軟體開發工具不勝枚舉

abie
Download Presentation

第三章 以 Borland C++ Builder 開發 視窗介面為基之 I/O 控制技術

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第三章 以Borland C++ Builder開發視窗介面為基之I/O控制技術

  2. 內容大綱 • 緒論 • 微電腦I/O控制系統 • 圖形介面暨視窗為基的應用程式 • Borland C++ Builder 程式開發 • 本書實習實作使用到的BCB VCL元件 • 總結

  3. 緒論 • 微電腦I/O控制系統到處可見 • 控制技術良劣,會影響操控效能 • 本書探討個人電腦I/O控制技術 • 使用PC的輸出入埠,進行控制資料的輸出入 • 操控介面完全仰賴控制軟體 • 圖形為主的視窗介面控制技術

  4. 緒論(續) • 個人電腦平台下的軟體開發工具不勝枚舉 • MS 的Visual Studio • Borland 的C++ Builder、JBuilder、Delphi • SUN 的JAVA • 微電腦I/O控制技術和程式開發系統或語言無關 • 使用功能強大且容易上手的程式開發工具 • 要求讀者程式實作 • Borland 的 C++ Builder • 讀者必須具備使用及撰寫C/C++的能力

  5. 內容大綱(我們在哪裡?) • 緒論 • 微電腦I/O控制系統 • 圖形介面暨視窗為基的應用程式 • Borland C++ Builder 程式開發 • 本書實習實作使用到的BCB VCL元件 • 總結

  6. 微電腦I/O控制系統 • 微電腦控制系統的應用到處可見 • 3C產品的民生消費物品 • 大型公共設施工業設備、或國防武器 • 內有獨立運作或協調運轉的電腦控制系統

  7. 微電腦I/O控制系統(續) • 簡單的控制系統 • 作成微電腦晶片,直接控制設備 • 控制的動作較簡單 • 毋須高度複雜的運算 • 功能較簡單且較經濟 • 如:玩具內的聲光控制,簡便型計算機

  8. 微電腦I/O控制系統(續) • 複雜或高彈性控制系統 • 採用專用的控制系統 • 可能採用專用的或泛用的電腦系統 • 控制邏輯或是控制程式是以軟體寫成 • 隨時可以更新和變更 • 提供較大的操控彈性。 • 如:暖氣空調設備、升降梯、火災受訊設備、門禁系統

  9. 機電控制系統控制技術類型 • 硬式控制法 • 完全採用硬體設備 • 譬如:公寓的供水系統—兩段浮筒和抽水馬達及繼電器 • 軟式控制法 • 使用操控軟體和微電腦 • 使用標準人機介面設備 • 滑鼠、鍵盤 • 譬如:無人駕駛的捷運車系統、工廠的無人搬運車控制系統、核電廠的廠區控制系統、或複雜加工機台的控制系統

  10. 機電系統硬式控制法

  11. 機電系統軟式控制法

  12. 控制系統概觀 • 一定會有前面章節敘述過的感測器和致動器 • 感測器是系統的輸入,致動器是系統輸出 • 二者間的關聯就是所謂的控制邏輯 • 硬式控制模式將控制邏輯硬生生地以線路連結 • 軟式控制則以邏輯程式或操控軟體,彈性地銜接二者

  13. 內容大綱(我們在哪裡?) • 緒論 • 微電腦I/O控制系統 • 圖形介面暨視窗為基的應用程式 • Borland C++ Builder 程式開發 • 本書實習實作使用到的BCB VCL元件 • 總結

  14. 圖形介面暨視窗為基的應用程式 • 視窗為基的電腦作業系統已成主流 • Apple Macintosh OS • Microsoft Windows • 以XWindow為基的 Unix 作業系統 • Sun 工作站電腦的 Solaris • Linux系統上的Red Hat • 電腦應用程式普遍採用圖形式人機交談介面 • 滑鼠成為個人電腦和工作站電腦的標準配備 • 典型的圖形式人機交談介面: • 使用者操控滑鼠,在視窗為基的應用程式內,顯示的各種控制項(controls)上,以滑鼠或敲擊、或快擊兩次、或拖拉等動作,下達各式操作指令

  15. 圖形式人機交談方式 • 提供了直覺的軟體操作方式 • 合乎人類的習性 • 易讓操作者聯想或監看操控結果 • 本書探討的微電腦I/O控制技術需要圖形介面 • 採用圖形式人機交談介面 • 達成圖形監視和控制的效果

  16. 內容大綱(我們在哪裡?) • 緒論 • 微電腦I/O控制系統 • 圖形介面暨視窗為基的應用程式 • Borland C++ Builder 程式開發 • 本書實習實作使用到的BCB VCL元件 • 總結

  17. Borland C++ Builder 程式開發 • BCB提供視窗程式開發者 RAD (Rapid Application Development)的技術 • 採用RAD技術開發視窗為基的應用程式 • 以一個主視窗作為主要的系統介面 • BCB 的程式開發專案(Project)便是以「表單」為主要介面 • 表單本身就是一個視窗,內有各式各樣的「控制項」(controls) • 應用程式開發人員規劃各個表單的內容,並仔細設計分析各個表單的邏輯流程,以展現應用程式應有的功能 • 程式撰寫便是處理各個控制項接收訊息或事件時的處理程序

  18. BCB 提供的IDE (Integrated Development Environment) 整合開發環境 • 程式編輯環境 • 指令或函式語法提示環境 • 編譯指令和執行程式 • 原始程式除錯和模擬執行結果 • 程式執行和測試環境 • 應用程式包裝環境 • 其他資料庫取用,資源編輯和構建等支援環境

  19. BCB 程式開發IDE

  20. BCB係提供VCL (Visual Component Library) 元件庫 • 繼承架構嚴謹的各式類別和元件 • 建立物件直接使用或擴充它 • 提供各式各樣的功能 • 各式Wizard 精靈工作的以進行的元件庫 • 智慧型應用程式框架開發環境

  21. 使用BCB新建一個應用程式 • 系統會內定為使用者撰寫一個專用的TForm1類別,繼承自VCL內的TForm 類別 • 附有一個表單的定義檔(Unit1.dfm) • 程式開發者使用VCL內的各種元件,以類似堆積木的方式,透過IDE環境下的表單設計介面,以圖像拖拉在表單上添加各種元件 • 設計過程系統會幫您撰寫相關的C++程式在TForm1類別程式內

  22. VCL內的元件 • 執行時可顯現於表單者 • 表單中的控制項 • 扮演使用者和系統的交談介面 • 透過這些控制項內的事件處理函式(event handlers)觸動行功能。 • 沒有視覺顯示功能者 • 提供物件協助 • 如:AnsiString類別

  23. 表單控制項 • 控制項元件 • 僅扮演介面角色只紀錄本身的特性(attributes)和狀態(states)供使用者和程式辨視 • 其內的特性(attributes)和狀態(states) ,描述應用程式資訊 • 添加於表單類別內的VCL元件均以C++物件指標(object pointer)指稱

  24. 內容大綱(我們在哪裡?) • 緒論 • 微電腦I/O控制系統 • 圖形介面暨視窗為基的應用程式 • Borland C++ Builder 程式開發 • 本書實習實作使用到的BCB VCL元件 • 總結

  25. 本書實習實作使用到的BCB VCL元件 • 僅介紹與本書目標相關的程式開發,所需的VCL元件 • 元件的屬性和成員函式也僅介紹與本課程相關者 • 其他的元件,讀者可視需要直接參閱BCB提供的線上說明資料 • 參閱相關說明,並透過IDE環境在程式開發環境下自行演練各種屬性變更

  26. BCB VCL元件 • 表單元件 (TForm) • 按鈕元件 (Tbutton) • 群組框元件 (TGroupBox) • 捲選盒元件 (TComboBox) • 面板元件 (TPanel) • 碼表元件 (TTimer) • 標籤元件 (TLabel) • 輸入元件 (TEdit) • 升降元件 (TUpDown)

  27. 表單元件 (TForm) • 不直接使用 • 不直接定義一個TForm類別的物件使用 • 使用物件導向程式語言的繼承特性,以TForm類別為繼承對象,另行設計一個使用者可以盡情擴充的新表單類別 • 自動由BCB處理 • 自動產生一個繼承自TForm類別的新表單類別,名為TForm1 • 產生一個unit1.h,unit1.cpp,及一個描述表單佈置的unit1.dfm等檔案

  28. TForm 元件的主要屬性和內容

  29. TForm 元件接受的主要事件和處理邏輯

  30. 按鈕元件 (Tbutton) • 典型的表單控制項 • 常常作為使用者執行程式某項功能的介面 • 可動態設定能否使用的狀態(Enabled) • 可動態設定藏、現(Visible)的狀態

  31. TButton元件構建工具及示意

  32. Tbutton 元件的主要屬性和內容

  33. Tbutton 元件接受的主要事件和處理邏輯

  34. Exercise 3-1 :實作一個電子琴演奏介面 • 在表單上佈置一個琴鍵畫面 • 內含一組琴鍵按鈕有八個白鍵和五個黑鍵 • 在類別下預先增添二個成員函式 • void play_a_key( int num ) • 驅動電腦喇叭發出琴音 • void stop_a_key() • 停止喇叭的發音

  35. Exercise 3-1:實作一個電子琴演奏介面(續) • 在琴鍵按鈕的OnMouseDown滑鼠事件處理函式中,以該琴鍵的琴音計數為參數呼叫play_a_key()函式 • 在表單類別的OnMouseUp 事件下添加處理函式呼叫stop_a_key() • 將所有的琴鍵的OnMouseUp 事件處理函式導引到FormMouseUp()處理函式

  36. Exercise 3-1的琴鍵表單介面

  37. 群組框元件 (TGroupBox) • 將一些控制項組成一個群組 • 視覺上可與其他控制項區隔 • 框內的控制項彼此維持相對位置,以整體方式一齊佈設在表單上,有助於表單的編排設計 • 主要的物件屬性是顯示群組頭銜的Caption屬性

  38. 群組框元件TGroupBox構建工具及示意

  39. 捲選盒元件 (TComboBox) • 常見的表單控制項元件 • 讓使用者設定某項資料值 • 資料值只能由一堆固定的值中選擇 • 一堆固定的值列成一個捲選清單

  40. TComboBox元件構建工具及示意

  41. TComboBox元件的主要屬性和內容

  42. Exercise 3-2 :設計微電腦I/O控制的主要人機介面 • 使用BCB建立一個應用程式,儲存成control.bpr • 將內定的TForm1表單的name屬性設為IOControlFM • 自行使用資源(resources)編修工具,設計一個小圖像並將它設為本專案的圖像 • 將TIOControlFM表單的Caption屬性設為「微電腦I/O控制C語言實作」

  43. Exercise 3-2 :設計微電腦I/O控制的主要人機介面(續) • 加入一個群組框元件,頭銜設為「8255模式設定」 • 加入一個捲選盒元件 • 在Items屬性內新增一筆字串「0x99」 • 加入一個按鈕元件 • Caption設成「控制模式設定」 • 在它的OnClick事件中添加事件處理函式 • 本函式將由您撰寫I/O程式,將捲選盒選定的控制資料輸出,以設定一個I/O介面卡內8255晶片的控制模式 • 使用者選的模式資料,以字串方式存放在捲選盒的Text屬性內

  44. Exercise 3-2 微電腦I/O控制實習的表單介面

  45. 面板元件 (TPanel) • 是一個矩形包容器元件 • 收納其他元件一起處理 • 特別用於表單佈置時,以各個面板元件為單位停駐在視窗邊緣或中間 • 面板元件可設定它的顏色,因此我們可使用它來代表控制系統的燈號

  46. TPanel元件構建工具及示意

  47. TPanel元件的主要屬性和內容

  48. 碼表元件 (TTimer) • 用於須定時反覆定時執行一些運算的情形 • 如:執行動畫時,每1/30秒必須執行更新畫面一次(以最新的位置和方位繪出場景內各個物件) • 如:微電腦I/O控制系統,必須隨時掃描輸入訊號 • 用於每到設定的間隔時間到時,產生時間到的事件 • 處理程序在時間到事件的處理函式中實作 • VCL設有TTimer元件和時間到事件OnTimer • 計時並設定相關的處理函式

  49. 碼表元件 (TTimer)(續) • 在設定的時間間隔到時,會產生OnTimer時間到事件 • 應用程式可動態地變更間隔時間,以加快或減慢事件產生的頻率 • 應用程式可視情況隨時啟動或停止碼表 • 碼表元件是沒有視覺顯示功能的VCL元件 • 程式執行時,不會有任何圖像顯示

  50. TTimer元件構建工具及示意

More Related