¥¼©R¦W-3

Similar documents
VB程序设计教程

Microsoft PowerPoint - VB14.ppt

¥¼©R¦W-4

CC213

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

Microsoft Word - ACG chapter00c-3ed.docx

投影片 1

<img>


840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

Ch6 Visual Basic表單,功能表與模組

epub83-1

Microsoft PowerPoint - VB5

The golden pins of the PCI card can be oxidized after months or years

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

投影片 1

多媒體應用 13 新增專案並完成版面配置 <ExMusic01> <activity_main.xml> ImageView ID imgplay ImageView ID imgstop ImageView ID imgfront TextView ID txtsong TextView ID t

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

¥¼©R¦W-5

INTRODUCTION TO COM.DOC

untitled

(Microsoft PowerPoint - \245\250\266\2606)

1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2 C3 3 STEP6 A1 STEP7 > > 1-11

1. 2. Flex Adobe 3.

Microsoft PowerPoint - Chapter5

ebook111-4

contents 1 4 Chapter 2 Chapter 5 Chapter 管理自動儲存的版本 以文件復原窗格復原檔案 自訂快速工具 自訂快速存取工具列 自訂功能區

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

ActiveX Control

2.4 Selenium Python Selenium Selenium Selenium Selenium pip install selenium Chrome WebDriver Google Chrome (Linux, Mac, Windows) Chrome WebDriv

untitled


FETnet - Acer Iconia Tab  (A500 Wi-Fi 版) 平板電腦操作指南

week06.key

5-1 nav css 5-2

CU0594.pdf

穨文件1

untitled

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

Microsoft PowerPoint - vb_net4

Photoshop CS3 影像創造力 基礎講堂 8 學習流程 學習重要性 學習難度 必學指令工具 實作應用範例 創造舞台燈光的漸層繪圖 延伸學習 雜訊與半透明漸層 8-1 Photoshop Photoshop 8 136

PowerPoint Presentation

APA Preliminaries Text Reference 1. Cover Page 2. Title Page 3. Signature Page 4. Advisor s recommendation letter 5. Approval page 6. Copyri

ch02

untitled

PowerPoint 簡報

Microsoft Word - GUI design.doc

Microsoft Word - ACI chapter00-1ed.docx

untitled

投影片 1


IsPostBack 2

本科毕业设计(论文)工作细则&撰写规范

PowerPoint Presentation

, 即 使 是 在 昏 暗 的 灯 光 下, 她 仍 然 可 以 那 么 耀 眼 我 没 有 地 方 去, 你 会 带 着 我 么 杜 晗 像 是 在 嘲 笑 一 般, 嘴 角 的 一 抹 冷 笑 有 着 不 适 合 这 个 年 龄 的 冷 酷 和 无 情, 看 着 江 华 的 眼 神 毫 无 温

MVB-1001.DOC

Microsoft PowerPoint - chap3

VB控件教程大全

Microsoft Word - 02.目錄.doc

Chapter 16 集合


Outline USB Application Requirements Variable Definition Communications Code for VB Code for Keil C Practice

基于ECO的UML模型驱动的数据库应用开发1.doc

Microsoft PowerPoint - 11_EventHandle.pptx

Microsoft PowerPoint - OPVB1基本VB.ppt

SMM667.mps

Android TSC Bluetooth/Ethernet 函式庫使用說明 1. openport(a) Bluetooth openport(a) 說明 : 指定電腦端的輸出埠參數 : a: 字串型別直接指定 Bluetooth MacAdress, 如 00:19:0E:A0:04:E1 Et

10-2 SCJP SCJD 10.1 昇陽認證 Java 系統開發工程師 的認證程序 Java IT SCJD

Microsoft PowerPoint - vb.net2.ppt

Microsoft PowerPoint - P766Ch09.ppt

05855BB03.indd

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

封面-12

untitled

影視後製全攻略 Premiere Pro After Effects Encore 自序 Adobe Premiere Pro After Effects Encore 2008 Adobe CS Adobe CS5 Adobe CS4 Premiere Pro After Effect

1

Microsoft PowerPoint - 18_Event.pptx

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

( )... 5 ( ) ( )

ebook50-11

概述

編 按 2


邀請大陸專業人士來臺從事文教相關活動參考手冊(修訂二版)

Python Facebook put_wall_post(message,attachment [,profile_id]) put_wall_post(message,attachment [,profile_id]) message message attachment profi

mvc

目次 CONTENTS 2 1 乘法公式與多項式 二次方根與畢氏定理 因式分解 一元二次方程式

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

書面



技術筆記 01 addlass()/removelass() 方法對指定的 HTML 元素附加 class 屬性可用 addlass() 方法, 刪除 class 屬性則用 removelass() 方法 透過附加 / 刪除設定 SS 的類別, 就可改變該元素的樣式 其與 animate() 方法不

Oxford iSolution下載及安裝指南

Microsoft Word - ACL chapter02-5ed.docx

4 CHAPTER 基本輸出入 JAVA

epub 94-3

Transcription:

3 基本輸入與輸出

輸入與輸出是程式設計的第㆒步, BCB 的輸入與輸出方式有兩種, 分別是使用元件及對話框 使用元件的方式是在表單 (Form) 放置輸出入元件, 本章即要介紹㆕種最常用的輸出入元件 -- 表單 (Form) 標籤 (Label) 文書盒 (Edit) 及功能鈕 (Button) 使用對話框的輸入與輸出, 將分別介紹 ShowMessage () MessageBox () 及 InputBox () 等函式 3-1 表單 (Form) Form 的主要功能為放置各種不同的輸出入元件, 以便繪圖及輸出入文字, 是使用者與程式溝通的最主要物件 如 圖所示, 當新增㆒個應用程式時, 第㆒個存在的元件即是表單 Caption 屬性 Caption 是表單的標題, 如 圖的表單, 其預設值為 Form1 Name 屬性 現實的社會, 每個 事 物均有名稱, BCB 的元件亦不例外, 表單的 Name 預設值為 Form1, 而本書 設定其物件縮碼為 frm ( 附註 : 什麼是物件縮碼? ㆒個程式 若同時存在㆓個以 相同元件, 則第㆒個元件為 Name1 第㆓個元件為 Name2, 例如 Form1 Form2... 等 但這種方式非常不利程式的閱讀, 所以本書將每㆒元件取其物件縮碼, 例如 Form 縮碼為 frm Label 縮碼為 lbl Edit 縮碼為 edi Button 縮碼為 btn 而物件的命名則是物件縮碼後加 ㆒個有意義的識別字, 例如前面常用到的 btnstart btnclose 等, 即是代表 Button 元件, 而 Start 與 Close 則代表此按鍵的功能 ) 3-2

基本輸入與輸出 3 ㆒些元件的初值亦可在 Form 載入時 (FormCreate 事件 ) 給予設定, 以 範例示範表單的用法 範例 3-1a 請寫㆒個程式, 當表單載入時, 使用表單的 Caption 屬性顯示 Hello ; 當按㆒ 表單時顯示 How are you ; 按㆓ 表單時, 結束程式的執行 題目分析 本例共需使用㆔種事件, 分別是表單載入事件 (FormCreate) 表單被按㆒ 事件 (FormClick) 及表單被按㆓ (FormDblClick), 而程式執行的依據即為以 事件成立與否, 這也就是目前程式開發工具的主流 事件驅動的程式設計, 關於事件驅動的程式設計請參閱本書第十㆔章 操作步驟 1. 開新專案 按㆒ 功能表的 File / New Application 2. 撰寫 FormClick 程序 (1) 如 圖左, 於 OnCreate 事件按㆓ 或直接於表單 按㆓, 即可 得 圖右的 FormCreate 事件程序 3-3

(2) 當表單載入時, Form1 物件的 Caption 填入 Hello, 直接以 BCB 表 示, 填入程式碼如 : (3) 撰寫 FormClick 事件程序 a. 於物件檢視視窗的 OnClick 事件按㆓, 程式編輯視窗出現如 圖 3-4

基本輸入與輸出 3 b. 於 FormClick 填入以 程式碼 (4) 撰寫 FormDblClick 事件程序 於物件檢視視窗的 OnDblClick 按㆓, 並鍵入 Close(), 如 圖 (5) 執行專案 a. 按㆒ 工具列的 Run 按鈕, 表單輸出如右圖, 標題已出現 Hello 3-5

b. 按㆒ 表單, 則表單輸 出如右圖, 標題已出現 How are you c. 按㆓ 表單可結束程式的執行 程式列印 //----------------------------------------------------- #include #pragma <vcl.h> hdrstop #include "Unit1.h" //----------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //----------------------------------------------------- fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) //----------------------------------------------------- void fastcall TForm1::FormCreate(TObject *Sender) Form1->Caption = "Hello"; //----------------------------------------------------- void fastcall TForm1::FormClick(TObject *Sender) Form1->Caption = "How are you"; 3-6

基本輸入與輸出 3 //----------------------------------------------------- void fastcall TForm1::FormDblClick(TObject *Sender) Close(); //----------------------------------------------------- 程式說明 1. 如何於程式執行階段存取物件的屬性? BCB 是在物件變數與屬性之間加 (->) 運算子 2. 表單載入時, 首先會執行 FormCreate 事件函式 表單常用屬性 每個物件均有許多屬性, 以 是表單常用的屬性列表, 其 有很多屬 性是所有物件共通的 屬性 說明 預設值 Name Form 物件的名稱 Form1 Caption Form 標題欄 的文字 Form1 Height Form 的垂直高度 ( 單位為 Pixel) Width Form 的水平寬度 ( 單位為 Pixel) Left Form 左 角距螢幕左邊的距離 ( 單位為 Pixel) Top Form 左 角距螢幕 面的距離 ( 單位為 Pixel) BorderStyle 設定 Form 邊界, 共有 6 種格式, 但只能在執行時 bssizeable 才會看到設定的結果 : bsdialog ( 雙線固定對話方塊 ) bsnone ( 沒有框線 ) bssingle ( 單線固定 ) bssizeable ( 大小可調整 ) bssizetoolwin ( 可調整工具視窗 ) bstoolwindow ( 單線固定工具視窗 ) 3-7

Color 設定 Form 工作區背景色 clbtnface +Font 選此屬性會顯示字型對話方塊, 在此對話方塊 (TFont) 可設定字型 字型樣式 大小與效果 *Color 設定 Form 工作區的前景色 clwindowtext *Name 可用來設定顯示字體的字型名稱, 不同字型名稱 MS Sans Serif 會顯示不㆒樣效果的字體 *Size 字體大小 字型大小最好大於 8 以, 否則 文字 8 看不清楚 +Style 字體顯示樣式與效果 [] *fsbold True: 以粗體字顯示字體 False False: 非粗體字 *fsltalic True: 以斜體字顯示字體 False False: 非斜體字 *fsstrikeout True: 字體顯示時加刪除線 False False: 不加刪除線 *fsunderline True: 字體顯示時 面加底線 False False: 字體 面加底線 Icon 設定 Form 縮小時所用的圖示 [None] Visible Form 顯現或隱藏 True WindowState Form 顯示的狀態, 共有 3 種格式 : wsnormal wsnormal- 正常 (Form 為設計階段大小 ) wsminimized- 最小化 (Form 縮為圖示, 置於工作列 ) wsmaximized- 最大化 (Form 放大佔滿整個螢幕 ) [ 註 1] : 有星號 (*) 者, 表示這些屬性是某個屬性的附屬屬性 [ 註 2] : 有加號 (+) 者, 表示該屬性還有附屬屬性, 在該屬性 按兩, 即可展開此屬性的附屬 屬性, 此時加號 (+) 將會變成減號 (-) 表單常用事件 每個物件均包含許多事件, 以 是表單的常用事件整理, 其 很多事 件是共通於所有物件 3-8

基本輸入與輸出 3 FormCreate 事件 當表單載入時, BCB 會自動執行此事件, 但此事件只有在載入 Form 時 才會執行, 因此在程式 只會執行㆒次 FormClick 事件 當使用者在表單, 按㆒ 滑鼠左鍵時 ( 不要按到有其他元件的 方 ) 就會觸動該表單的 FormClick 事件函式, 並將該函式內的敘述執行㆒次 FormDblClick 事件 當使用者在表單, 按㆓ 滑鼠左鍵時 ( 不要按到有其他元件的 方 ), 就會觸動該表單的 FormDblClick 事件函式 FormActivate 事件 當 Form 變成作用的表單 ( 被選取的表單稱為作用的表單, 亦稱為使用視窗 ), 會執行 FormActivate 事件函式 當 Form 載入後, 此事件將會緊接在 FormCreate 事件函式後執行, 往後只要有 Form 被選取, 都會執行此事件函式㆒次 因此, 此事件函式在程式 不只執行㆒次 FormPaint 事件 當 Form 載入執行時也會執行此事件函式, 且程式執行 若有其它物 件覆蓋在表單 或有改變表單的大小, 都會觸動 FormPaint 事件函式 3-9

3-2 標籤盒 (Label) Label 的主要功能為輸出程式的執行結果, 或於程式輸入控制項前輸出某些字元, 以做為輸入的提示 Label 常用屬性 Label 的大部分屬性都與 Form 相同, 比較特別的部分說明如 : Name 屬性 所有物件的名稱均使用 Name 屬性 (Label 元件亦不例外 ), 此屬性在本 單元之後, 均不再重複介紹 Caption 屬性 Caption 屬性用於顯示 Label 要顯示的字串 Align 屬性 物件對齊表單的方式, 有以 幾種對齊方式, 請自行把玩, 並觀察元件位置的變化 albottom: 佈滿 面表單 alclient: 佈滿整個表單 alleft: 佈滿左邊表單 alnone: 此屬性無作用 ( 預設性 ) alright: 佈滿右邊表單 altop: 佈滿 面表單 3-10

基本輸入與輸出 3 Alignment 屬性 標題文字的對齊方式, 有以 ㆔種 : tacenter: 文字靠 taleftjustify: 文字靠左 tarightjustify: 文字靠右 AutoSize 屬性 Label 元件的大小是否隨著文字的大小而自動調整 範例 3-2a 同 範例, 於表單載入時, 表單的標題顯示系統時間 ; 當按㆒ 表單時, 使用 Label 顯示 How are you, 並讓電腦的喇叭發出 嗶㆒聲 ; 當滑鼠於 Label 方移動時, Label 出現 You are welcome 輸出結果 1. 圖左是程式執行的畫面, 表單的標題已顯示時間 2. 圖右是按㆒ 表單的畫面, Label1 的標題已顯示 How are you 3-11

3. 右圖是滑鼠移至 Label1 方的畫 面, Label1 的標題顯示 You are welcome 表單配置 如右圖 物件說明 本例共使用兩個物件, 列表如 : 物件屬性屬性值 Form Name Form1 Label Name Label1 操作步驟 1. 於表單配置 Label 元件 (1) Caption 屬性預設為 Label1, 所以於表單可見 Label1 3-12

基本輸入與輸出 3 (2) 於表單重設 Label 元件的大小與位置 (3) 設定 Font->Size 屬性為 14 (4) Caption 屬性可以在設計階段和執行階段設定, 本例將在執行階段重設其值, 請看步驟 3 2. 於 FormCreate 函式鍵入程式如, 其 Time() 是系統內建的時間函式 ; TimeToStr 是將時間型別轉為字串型別, 詳細說明請看 10-3 節 3. 於 FormClick 函式鍵入程式如, 其 Beep() 可於喇叭發出嗶㆒聲 4. 於 Label1MouseMove 函式鍵入以 程 式 : 3-13

程式列印 //------------------------------------------------------- void fastcall TForm1::FormCreate(TObject *Sender) Form1->Caption = TimeToStr(Time()); //------------------------------------------------------- void fastcall TForm1::FormClick(TObject *Sender) Beep(); Label1->Caption = "How are you"; //------------------------------------------------------- void fastcall TForm1::Label1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) Label1->Caption = "You are welcome"; //------------------------------------------------------- 3-3 文書盒 (Edit) ㆒節的 Label 僅能顯示輸出結果, 他的特色是僅提供輸出功能 不能進行任何輸入, 如此可防止資料遭受到使用者修改 本節的 Edit 則可作為輸出 入的工具, 且其重點是應用在輸入文字及數字 屬性 Edit 較特殊的屬性如 所述 : Text 屬性 使用者所輸入的文 數字, 型別為字串 (String), 其預值為 Edit1 3-14

基本輸入與輸出 3 MaxLength 屬性 設定可輸入的最大字元數, 其預值為 0 ( 若設定為 0, 表示無輸入 限 ) PasswordChar 屬性 若要鍵入的字元不顯示於 Edit, 可使用此屬性 例如填入星號 (*), 則使 用者所輸入的字元均以星號 (*) 顯示 若欲正常顯示, 則應使用預設值 #0 ReadOnly 屬性 邏輯值, 設定 Text 的內容唯讀與否, 其預設值為 False Hint 屬性 當滑鼠移至 Edit 方時, 所出現的提示字, 其預設值為空白 ShowHint 屬性 邏輯值, 設定 Hint 屬性顯示與否, 其預設值為 False 範例 3-3a 請設計㆒個密碼輸入程式, 由 Edit 元件輸入密碼, 當使用者按㆒ 表單時, 由 Label 元件輸出密碼內容 輸出結果 圖左為輸入密碼的畫面, 所輸入的字元均以星號 (*) 顯示, 圖右是 按㆒ 表單的畫面, 所輸入的密碼已指定由 Label 輸出 3-15

物件說明 請於表單配置以 元件, 並於物件檢視視窗設定以 屬性 物件 屬性 值 說明 Form Name Form1 表單 Edit Name Edit1 Text PasswordChar * 使用者所輸入的密碼字元均以 * 字元顯示 MaxLength 8 設定輸入字元 限為 8 Hint 請輸入密碼 ShowHint True 設定輸出 Hint 屬性的內容 Label Name Label1 Caption 輸出密碼 程式列印 //--------------------------------------------------- void fastcall Tfrm::FormCreate(TObject *Sender) edi->text=""; lbl->caption=""; //--------------------------------------------------- void fastcall Tfrm::FormClick(TObject *Sender) 3-16

基本輸入與輸出 3 lbl->caption=edi->text; //--------------------------------------------------- void fastcall Tfrm::FormDblClick(TObject *Sender) Close(); //--------------------------------------------------- 程式說明 Form Label 與 ㆒節的 Button 均使用 Caption 屬性顯示其輸出結果, 但 請特別留意 Edit 卻使用 Text 作為輸出入的屬性 3-4 功能鈕 (Button) 在前面幾節裡, 都是使用按㆒ 表單的方式來執行某項命令 然此種方式無法順利引導使用者執行某項功能 也無法同時執行多個命令, 本節將介紹㆒個正式的功能按鈕 (Button) 解決以 問題 Button 元件最常使用的功能為 Click 事件, 其標題亦為 Caption 屬性, 請看以 範例說明 範例 3-4a 請寫㆒個可以執行算術的加 減 乘及除法運算程式 表單配置 如右圖 3-17

執行結果 果 右圖是按㆒ 加法 (+) 的結 物件說明 物件 屬性 值 說明 Edit Name edi1 Text 12 第㆒運算元 Edit Name edi2 Text 3 第㆓運算元 Label Name lblop 顯示運算子 Caption lblop Label Name lblequ Caption = 存放等號 Label Name lblout 存放輸出結果 Caption Button Name btnadd 加法按鈕 Caption + Button Name btnsub 減法按鈕 Caption - Button Name btnmul 乘法按鈕 Caption * Button Name btndiv 除法按鈕 Caption / Button Name btnend 結束按鈕 Caption 結束 3-18

基本輸入與輸出 3 程式列印 void fastcall TForm1::btnAddClick(TObject *Sender) lblout->caption=inttostr(strtoint(edi1->text) +StrToInt(edi2->Text)); lblop->caption="+"; //----------------------------------------------------- void fastcall TForm1::btnSubClick(TObject *Sender) lblout->caption=inttostr(strtoint(edi1->text) -StrToInt(edi2->Text)); lblop->caption="-" ; //----------------------------------------------------- void fastcall TForm1::btnMulClick(TObject *Sender) lblout->caption=inttostr(strtoint(edi1->text) *StrToInt(edi2->Text)); lblop->caption="*"; //----------------------------------------------------- void fastcall TForm1::btnDivClick(TObject *Sender) lblout->caption=inttostr(strtoint(edi1->text) /StrToInt(edi2->Text)); lblop->caption="/"; //----------------------------------------------------- void fastcall TForm1::btnEndClick(TObject *Sender) Close(); 3-19

程式說明 BCB 對資料型別的要求非常嚴謹, 不像 VB 可以彈性設定 本例的 Edit 與 Label 的屬性 :Text 與 Caption, 其格式均為字串, 故要進行算術運算以前均要先轉為整數 (StrToInt) 或浮點數 (StrToFloat), 待數值運算完畢後再轉為字串 (IntToStr 或 FlootToStr) 輸出 範例 3-4b 同 範例, 但為每個功能鈕製作快速鍵 表單配置 如右圖 輸出結果 如右圖, 按㆒ 鍵盤的與, 可執行加法運算 3-20

基本輸入與輸出 3 操作步驟 1. 於 btnadd 的 Caption 鍵入 +&a, 表示允許使用 與 快速鍵功能, 且 顯示 +a 2. 於 btnsub 的 Caption 鍵入 -&s, 表示允許使用 與 快速鍵功能, 且 顯示 -s 3. 於 btnmul 的 Caption 鍵入 *&d, 表示允許使用 與 快速鍵功能, 且 顯示 *d 4. 於 btndiv 的 Caption 鍵入 /&f, 表示允許使用 與 快速鍵功能, 且 顯示 /f 5. 於 btnend 的 Caption 鍵入 &end, 表示允許使用 與 快速鍵功能, 且 顯示 end 程式列印 同 範例 3-5 ShowMessage 程序 BCB 的輸入或輸出資料, 除了可以使用 面的元件外, 亦可使用函式, 例如本節要介紹的 ShowMessage 函式及 ㆒節的 InputBox 函式 MessageBox 函式 ShowMessage 的語法如, 它可以將指定的 Msg 字串輸出 extern PACKAGE void fastcall ShowMessage( constansistring Msg); 3-21

範例 3-5a 示範 ShowMessage 的用法 執行結果 本例按㆒ 執行 按鈕, 即出現 ShowMessage 對話框, 如 右圖 程式列印 void fastcall TForm1::Button1Click(TObject *Sender) ShowMessage(" 歡迎光臨 "); 3-6 InputBox 函式 ㆒節的 ShowMessage 僅能輸出字串, 本節的 InputBox 除了可輸出字串 外 亦可輸入字串 其語法如, 其 ACaption 是對話框的標題 APrompt 是對話框的提示字串 ADefault 是輸入的預設值, 其格式均為 String extern PACKAGE WideString fastcall InputBox( constwidestring ACaption, const WideString APrompt, const WideString ADefault); 3-22

基本輸入與輸出 3 範例 3-6a 示範 InputBox 函式的用法 執行結果 如右圖 表單配置 1. 圖左是按㆒ 執行 按鈕, 所出現的 InputBox 對話框 2. 圖右是按㆒ OK 按鈕, 表單的執行結果 3-23

程式列印 void fastcall TForm1::Button1Click(TObject *Sender) String stra; stra = InputBox(" 民國年次轉為西元年次 ", " 請輸入民國年次 ", "53"); Label1->Caption = " 您的西元年次是 " + IntToStr(StrToInt(stra)+1911); 3-7 MessageBox 函式 於程式的執行 常有㆒些無法預期的事件或訊息, BCB 提供此㆒對話函式供使用者使用, 如此即可縮短程式撰寫時間, 並提昇 機使用介面的親和性 MessageBox 的語法如, 它是封裝 Windows API MessageBox 的函式 傳回之數值 m = MessageBox ( 輸出字串, 標題, n) 以 語法說明如 : 1. 輸出字串與標題均為字串型別 2. m n 均為 Integer 型別 3. n 之值可為 列之值或累加 若為累加, 則輸出之格式亦是個別情況的組合 3-24

基本輸入與輸出 3 型別 n 值 說明 ㆒ 功能鈕種類 0 出現 確定 按鈕 1 出現 確定 取消 按鈕 2 出現 終止 (A) 重試 (R) 及 忽略 (I) 等按鈕 3 出現 是 (Y) 否 (N) 及 取消 按鈕 4 出現 是 (Y) 否 (N) 按鈕 5 出現 重試 (R) 取消 按鈕 6 出現 取消 重試 (R) 繼續 等按鈕 ㆓ 圖示 16 出現 圖示 32 出現? 圖示 48 出現! 圖示 64 出現 i 圖示 ㆔ 預設按鈕 0 以第㆒個按鈕為預設按鈕 256 以第㆓個按鈕為預設按鈕 512 以第㆔個按鈕為預設按鈕 4. 各種按鈕的傳回值 m, 如 表 : 傳回值 m 按鈕 1 確定 2 取消 3 終止 4 或 10 重試 5 忽略 6 是 7 否 11 繼續 範例 3-7a 本例示範 MessageBox 函式的用法 3-25

表單配置 如右圖 執行結果 於 圖左, 按鈕樣式 輸入 5 圖示 輸入 16 預設按鈕 輸 入 256, 按㆒ 顯示 MessageBox, 畫面如 圖右 3-26

基本輸入與輸出 3 程式列印 void fastcall TForm1::btnStartClick(TObject *Sender) int a, b, c, d; a = StrToInt(ediStyle->Text); b = StrToInt(ediIcon->Text); c = StrToInt(ediButton->Text); d = Application->MessageBox(" 請點選以 按鈕 ", "MessageBox", a+b+c); lblout->caption =IntToStr(d); 3-8 習題 1. 自由落體的距離與時間關係如 : 請寫㆒個程式可以輸入初速 Vo 及所經時間 t, 而得其落體距離 2. 假設 y = f(x) = x 3-6x 2 +11x-6, 請寫㆒程式, 可以輸入 x 值, 而得對應的 y 值 3-27

3-28