1 / 26

第三章 基本輸入與輸出

第三章 基本輸入與輸出. 3-1 表單( Form ) 3-2 標籤盒( Label ) 3-3 文書盒( Edit ) 3-4 功能鈕( Button ) 3-5 ShowMessage 程序 3-6 InputBox 函式.

leo-dorsey
Download Presentation

第三章 基本輸入與輸出

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. 第三章 基本輸入與輸出 • 3-1 表單(Form) • 3-2 標籤盒(Label) • 3-3 文書盒(Edit) • 3-4 功能鈕(Button) • 3-5 ShowMessage程序 • 3-6 InputBox函式

  2. 輸入與輸出是程式設計的第一步,Delphi的輸入與輸出方式有兩種,分別是使用元件及對話框。使用元件的方式是在表單(Form)放置輸出入元件,本章即要介紹四種最常用的輸出入元件──表單(Form)、標籤(Label)、文書盒(Edit)及功能鈕(Button)。使用對話框的輸入與輸出,將分別介紹ShowMessage()、MessageBox()及InputBox()等函式。輸入與輸出是程式設計的第一步,Delphi的輸入與輸出方式有兩種,分別是使用元件及對話框。使用元件的方式是在表單(Form)放置輸出入元件,本章即要介紹四種最常用的輸出入元件──表單(Form)、標籤(Label)、文書盒(Edit)及功能鈕(Button)。使用對話框的輸入與輸出,將分別介紹ShowMessage()、MessageBox()及InputBox()等函式。

  3. 3-1 表單(Form) Form的主要功能為放置各種不同的輸出入元件,以便作為繪圖及輸出入文字,是使用者與程式溝通的最主要物件。如下圖所示,當新增一個應用程式時,第一個存在的元件即是表單。 • Caption屬性 Caption是表單的標題,如上圖的表單,其預設值為Form1。 • Name屬性 現實的社會中,每個人、事、物均有名稱,Delphi的元件亦不例外,表單的Name預設值為Form1,而本書中設定其物件縮碼為frm。(附註:什麼是物件縮碼?一個程式中若同時存在二個以上相同元件,則第一個元件為Name1、第二個元件為Name2,例如Form1、Form2...等。但這種方式非常不利程式的閱讀,所以本書將每一元件取其物件縮碼,例如Form縮碼為frm、Label縮碼為lbl、Edit縮碼為edi、Button縮碼為btn。而物件的命名則是物件縮碼後加上一個有意義的識別字,例如前面常用到的btnStart、btnClose等,即是代表Button元件、Start與Close則代表此按鍵的功能。) 一些元件的初值亦可在Form載入時(FormCreate事件)給予設定,以下範例示範表單的用法。

  4. 範例3-1a • 請寫一個程式,當表單載入時,使用表單的Caption屬性顯示“Hello”;當按一下表單時顯示“How are you”;按二下表單時,結束程式的執行。 • 本例共需使用三種事件,分別是表單載入事件(FormCreate)、表單被按一下事件(FormClick)及表單被按二下(FormDblClick),而程式執行的依據即為以上事件成立與否,這也就是目前程式開發工具的主流──事件驅動的程式設計,關於事件驅動的程式設計請參閱本書第十二章。 程式說明: • 1. 如何於程式執行階段存取物件的屬性? Delphi與VB均是在物件變數與屬性之間加點(.)運算子。 • 2. 表單載入時,首先會執行FormCreate事件函式。 表單常用屬性

  5. 表單常用屬性 每個物件均有許多屬性,以下是表單常用的屬性列表,其中有很多屬性是所有物件共通的。

  6. [註1]:有星號(*)者,表示這些屬性是某個屬性 的附屬屬性。 • [註2]:有加號(+)者,表示該屬性還有附屬屬性,在該屬性上按兩下,即可展開此屬性的附屬屬性,此時加號(+)將會變成減 號(-)。

  7. 表單常用事件 每個物件通常均包含許多事件,以下是表單的常用事件整理,其中很多事件是共通於所有物件。 • FormCreate事件 當表單載入時,Delphi會自動執行此事件,但此事件只有在載入Form時才會執行,因此在程式中只會執行一次。 • FormClick事件 當使用者在表單中,按一下滑鼠左鍵時(不要按到有元件的地方)就會觸動該表單的FormClick事件函式,並將該函式內的敘述執行一次。 • FormDblClick事件 當使用者在表單中,按二下滑鼠左鍵時(不要按到有元件的地方),就會觸動該表單的FormDblClick事件函式。 • FormActivate事件 當Form變成作用的表單(被選取的表單亦稱為使用視窗),會執行FormActivate事件函式。當Form載入後,此事件將會緊接在FormCreate事件函式後執行,往後只要有Form被選取,都會執行此事件函式一次。因此,此事件函式在程式中不只執行一次。 • FormPaint事件 當Form載入執行時也會執行此事件函式,且程式執行中若有其它物件覆蓋在表單上、或有改變表單的大小,都會觸動FormPaint事件函式。

  8. 3-2 標籤盒(Label) • Label的主要功能為輸出程式的執行結果,或於程式輸入控制項前輸出某些字元,以作為輸入的提示。

  9. 範例3-2a • 同上範例,於表單載入時,表單的標題顯示系統時間;當按一下表單時,使用Label顯示“How are you”,並讓電腦的喇叭發出“嗶一聲”;當滑鼠於Label上方移動時,Label出現“You are Welcome”。

  10. Label常用屬性與方法 Label的大部分屬性都與Form相同,比較特別的部分說明如下: • Name屬性 所有物件的名稱均使用Name屬性(Label元件亦不例外),此屬性在本單元之後, 均不再重複介紹。 • Caption屬性 Caption屬性用於顯示Label要顯示的字串。 • Align屬性 物件靠齊表單的方式,有以下幾種靠齊方式,請自行把玩,並觀察元件位置的變化 alBottom :佈滿下面表單。 alClient :佈滿整個表單。 alLeft :佈滿左邊表單。 alNone :此屬性無作用(預設性)。 alRight :佈滿右邊表單。 alTop :佈滿上面表單。 • Alignment屬性 標題文字的對齊方式,有以下三種: taCenter :文字靠中。 taLeftJustify :文字靠右。 taRightJustify :文字靠左。 • AutoSize屬性 Label元件的大小是否隨著文字的大小而自動調整。

  11. 3-3 文書盒(Edit) 上一節的Label僅能顯示輸出結果,他的特色是僅提供輸出功能、不能進行任何輸入,如此可防止資料遭受到使用者修改。本節的Edit則可作為輸出、入的工具,且其重點是應用在輸入文字及數字,Edit較特殊的屬性如下所述: • Text屬性 使用者所輸入的文、數字,型態為字串(String),其預值為Edit1。 • MaxLength屬性 設定可輸入的最大字元數,其預設值為0(若設定為0,表示無輸入上限)  • PasswordChar屬性 若要鍵入的字元不顯示於Edit,可使用此屬性。例如填入星號(*),則使用者所輸入的字元均以星號(*)顯示。若欲正常顯示,則應使用預設值#0。 • ReadOnly屬性 邏輯值,設定Text的內容唯讀與否,其預設值為False。 • Hint屬性 當滑鼠移至Edit上方時,所出現的提示字,其預設值為空白。 • ShowHint屬性 邏輯值,設定Hint屬性顯示與否,其預設值為False。

  12. 範例3-3a 請設計一個密碼輸入程式,由Edit元件輸入密碼,當使用者按一下表單時,由Label元件輸出密碼內容。

  13. 範例3-3a程式說明: Form、Label與下一節的Button均使用Caption屬性顯示其輸出結果,但請特別留意Edit卻使用Text作為輸出入的屬性。

  14. 3-4 功能鈕(Button) • 在前面幾節裡,都是使用按一下表單的方式來執行某項命令。然此種方式無法順利引導使用者執行單一項功能、也無法同時執行多個命令,本節將介紹一個正式的功能按鈕(Button)解決以上問題。Button元件最常使用的功能為Click事件,其標題亦為Caption屬性,請看以下範例說明。

  15. 範例3-4a • 請寫一個可以執行算術的加、減、乘及除法運算程式。 程式說明: • Delphi對資料型態的要求非常嚴謹,不像VB可以彈性設定。本例的Edit與Label的屬性:Text與Caption,其格式均為字串,故要進行算術運算以前均要先轉為整數(StrToInt)或浮點數(StrToFloat),待數值運算完畢後再轉為字串(IntToStr或FlootToStr)輸出。

  16. 範例3-4b • 同上範例,但為每個功能鈕製作快速鍵

  17. 3-5 ShowMessage程序 • Delphi的輸入或輸出資料,除了可以使用上面的元件外,亦可使用程序或函式,例如本節要介紹的ShowMessage程序及下一節的InputBox函式、MessageBox函式。 • ShowMessage的語法如下,它可以將指定的Msg字串輸出。 procedure ShowMessage(const Msg: string);

  18. 範例3-5a • 示範ShowMessage的用法。

  19. 3-6 InputBox函式 • 上一節的ShowMessage僅能輸出字串,本節的 InputBox 除了可輸出字串外、亦可輸入字串。其語法如下,其中ACaption是對話框的標題、APrompt是對話框的提示字串、ADefault是輸入的預設值,其格式均為String。 function InputBox(const ACaption, APrompt, ADefault: string): string;

  20. 範例3-6a • 示範InputBox函式的用法。

  21. 3-7 MessageBox函式 • 於程式的執行中常有一些無法預期的事件或訊息,Delphi提供此一對話函式供使用者使用,如此即可縮短程式撰寫時間,並提昇人機使用介面的親和性。MessageBox的語法如下,它是封裝Windows API MessageBox的函式。 • 傳回之數值 m := MessageBox (輸出字串,標題,n) • 以上語法說明如下: 1.輸出字串與標題均為字串型態。 2. m、n均為Integer型態。 3. n 之值可為下列之值或累加。若為累加,則輸出之格式亦是個別情況的組合。

  22. 4. 依使用者所按的按鈕所傳回值, 如下表:

  23. 範例3-7a • 本例示範MessageBox函式的用法。

  24. 習題 • 1. 自由落體的距離與時間關係如下: s=v0t+g.t2 請寫一個程式可以輸入初速vo及經時間t後,而得其落體距離。 • 2. 假設y = f(x) = x3-6x2+11x-6,請寫一程式,可以輸入x值,而得對應的y值。 • 3. 請寫一個程式 (1)可以輸入兩個點的座標。 (2)按一下“開始”按鍵,可得兩點距離。

More Related