用 Visual Basic 開發 Android App 專題研習 壹 活動主旨 一 Basic4android(B4A) 是一套整合開發環境 IDE, 可以讓 Visual Basic 語言的開發者直接使用 BASIC 語言來開發 Android App,B4A 能夠自動將開發者撰寫的 BASI

Size: px
Start display at page:

Download "用 Visual Basic 開發 Android App 專題研習 壹 活動主旨 一 Basic4android(B4A) 是一套整合開發環境 IDE, 可以讓 Visual Basic 語言的開發者直接使用 BASIC 語言來開發 Android App,B4A 能夠自動將開發者撰寫的 BASI"

Transcription

1 國立中壢高商 103 學年度 精進優質計畫 桃園縣資訊教師研習講義 用 Visual Basic 開發 Android App 專題研習 資深電腦圖書作家陳會安老師 103/11/25

2 用 Visual Basic 開發 Android App 專題研習 壹 活動主旨 一 Basic4android(B4A) 是一套整合開發環境 IDE, 可以讓 Visual Basic 語言的開發者直接使用 BASIC 語言來開發 Android App,B4A 能夠自動將開發者撰寫的 BASIC 程式碼編譯轉換成 Java 程式碼來建立原生的 Android 應用程式 二 透過以 Basic4android 開發 Android App 的分享, 協助參與教師以現有的 Visual Basic 程式設計經驗, 轉而開發 Android App 貳 研習課程 時間 議程 8:40~9:00 報到 9:00~10:30 Android 與 B4A 基礎和開發環境安裝設定 - 建立第一個 Android App 和 AVD 的使用 10:30~10:40 茶水時間 10:40~12:10 B4A 的 Visual Basic 語法 12:10~13:00 午餐 & 午休 13:00~13:50 使用 B4A 的 GUI 設計工具 13:50~14:00 茶水時間 14:00~14:50 GUI 元件與活動 14:50~15:00 茶水時間 15:00~15:50 繪圖 檔案處理與正式版 B4A 函數庫 ( 正式版與試用版是最大的差異 ) 15:50~16:00 茶水時間 16:00~17:00 意圖 服務與狀態列通知 參 主講人 : 陳會安老師 學歷 : 美國猶他州州立大學電腦碩士資深專業電腦圖書作家經歷 : 美商 PH 出版經理 專業電腦書作者著作 : 用 Visual Basic 您也能開發 Android App-- 使用 Basic4android) 用實例學 Visual Basic 2013 / 2012 程式設計 JavaScript 與 jquery 網頁設計範例教本 Java SE 7 與 Android 4.x 程式設計範例教本 PHP+ MySQL 與 jquery Mobile 跨行動裝置網站開發 SQL Server 2012 資料庫設計與開發實務 等超過 30 本著作

3 Android 的基礎 Android 是一套使用 Linux 作業系統為基礎開發的 Open Source 作業系統, 主要是針對手機等行動裝置使用的作業系統, 現在 Android 已經逐漸擴充到平板電腦 筆電和其他領域, 例如 : 電子書閱讀器 MP4 播放器和 Internet 電視等 目前擁有 Android 作業系統的是非營利組織的開放式手持裝置聯盟,Google 公司則在幕後全力支援 Android 作業系統的開發計劃, 並且在 Android 作業系統整合 Google 的 Gmail Youtube Google 地圖和 Google Play 等服務, 作為主要的獲利來源 Android 的版本 Android 版本 釋出日期 代號 /4/30 Cupcake( 紙杯蛋糕 ) /9/15 Donut( 甜甜圈 ) 2.0/ /10/26 Eclair( 閃電泡芙, 法式奶油夾心甜點 ) /5/20 Froyo( 冷凍乳酪 ) /12/6 Gingerbread( 薑餅 ) 3.0/3.1/ /2/22 Honeycomb( 蜂窩 ) 4.x 2011/10/19 Ice Cream Sandwich( 冰淇淋三明治 ) 4.1/4.2/ /6/28,10/29, Jelly Bean( 雷根糖 ) 2013/7/ /9/3 KitKat( 奇巧巧克力 ) 中壢高商 1

4 Android 的系統架構 Android App Android 作業系統的系統架構像是在蛋糕店購買的一個多層蛋糕, 在行動裝置的硬體和使用者之間是 Android 軟體堆疊 (Android Software Stack), 如右圖所示 : Android App 的組成元件 Android App 的組成有四種元件 : 活動 內容提供者 廣播接收器 服務 如同網頁中的超鏈結 中壢高商 2

5 活動 (Activities) 活動是 Android App 與使用者互動的元件, 用來定義使用者經驗, 它也是唯一可以讓使用者看到的元件, 即使用介面的螢幕畫面, 一個活動就是使用者在行動裝置上看到的單一螢幕畫面 Android App 可以建立一至多個活動來處理 App 所需的不同互動, 如同 Web 網站擁有多頁網頁 內容提供者 (Content Providers) 內容提供者是在不同 Android App 之間分享資料的介面, 它是一組封裝的資料, 提供客製化 API 來進行讀寫 例如 : 聯絡人應用程式並沒有儲存任何聯絡人資料, 它是透過內容提供者取得聯絡人資訊 : 姓名 地址和電話等, 換句話說, 其他需要使用聯絡人資料的 Android App, 也都可以透過同一個內容提供者來存取聯絡人資料 中壢高商 3

6 廣播接收器 (Broadcast Receivers) 廣播接收器顧名思義是用來接收廣播且做出回應, 這是 Android 實作系統層級的廣播與回應機制, 事實上,Android 系統本身就會常常發出廣播, 例如 : 接到來電 收到簡訊 啟動相機裝置 時區改變 系統開機 電池剩餘電量過低或使用者選擇偏好語言時,Android 系統都會發出廣播 服務 (Services) 服務是在背景執行的行程, 可以執行和活動一樣的工作, 只是沒有使用介面 例如 : 在播放背景音樂時, 之所以不會打斷我們發送簡訊或收發電子郵件, 因為它是在背景執行的服務, 才能讓音樂播放不中斷 Android 作業系統本身就內建許多系統服務, 我們可以直接使用 API 來使用這些服務, 例如 : 定位服務 服務的生命周期 中壢高商 4

7 意圖 (Intents) 意圖是一個啟動其他 Android 活動 服務和廣播接收器的非同步訊息 意圖可以告訴 Android 作業系統我想作什麼? 執行什麼動作? 作業系統是使用意圖篩選 (Intent Filters) 來找出可以處理的元件, 例如 : 啟動其他活動 告訴指定服務可以啟動或停止與送出廣播 活動 A 送出看照片的意圖 啟動活動 B 顯示照片 Android App 的主要開發方式 方法一 :Eclipse IDE+Android SDK( 原生 ) 方法二 :HTML5 方案 (Hybrid)- 瀏覽器 jquery Mobile+PhoneGap 中壢高商 5

8 Android App 開發使用的程式語言 目前教學上,Android App 開發使用的程式語言主要有 : Java 語言 ( 物件導向程式語言 ) App Inventor( 拼圖 ) HTML5+JavaScript( 網頁程式語言 ) Basic4android+BASIC C++ 語言 (RAD Studio XE 6) C# 語言 (Xamarin) Basic4android 簡介 Basic4android(B4A) 是以色列 Anywhere Software 公司開發的整合開發環境, 這是針對 Android 平台開發的一套簡單且功能強大的快速應用程式開發工具 (Rapid Application Development,RAD) Basic4android 是一套 Android App 的整合開發環境 IDE, 可以讓 Visual Basic 語言的使用者直接使用 BASIC 語言來開發 Android App,B4A 能夠將開發者撰寫的 BASIC 程式碼編譯轉換成 Java 程式碼來建立原生 Android App, 換句話說, 其執行效能並不會打折扣 中壢高商 6

9 Basic4android 的基本架構 B4A 函數庫 B4A IDE 為什麼 Basic4android 比較簡單 將 Java 物件導向程式設計降為 VB 語言的物件基礎程式設計 (B4A 本身也提供有物件導向語法 ) 使用函數庫簡化 Android 權限設定, 和擴充新功能, 新版 Android 功能是使用 B4A 函數庫來擴充 每一個函數庫就是一至多個物件, 可以存取屬性和呼叫方法來使用所需的功能 ( 原生是使用物件導向的繼承和覆寫等語法 ), 例如 :GPS 資料庫 網路存取 (JSON) 等 最新 B4J 免費開發工具, 使用和 B4A 的相同觀念, 可以讓使用者以 VB 語言開發跨 Windows Mac 和 Linux 的視窗應用程式 ( 使用 JavaFx) 中壢高商 7

10 Basic4android VS App Inventor App Inventor 的開發目的主要是針對沒有程式設計經驗的使用者, 使用簡單的拼圖來建立程式, VB 開發者仍然需要學習全新語言, 再加上目前業界幾乎不可能使用此工具開發 App, 所以純萃只有教學用途, 而且很難和 Android SDK 接軌 Basic4android 是使用 BASIC 語言, 可以延續已有 VB 程式設計經驗, 再加上其架構是對應 Android SDK, 且最終會編譯成 Java 程式碼, 不只可以獨立開發 App, 更可以進一步作為橋樑來學習原生 Java 的 Android App 開發 所以, 本書架構事實上和 Android SDK 圖書十分相似 Basic4android 的版本 Basic4android 企業版 : 提供 2 年免費升級服務, 和 Basic4android 社群的完整存取權限 Basic4android 標準版 : 提供 2 個月免費升級服務, 和 Basic4android 社群的完整存取權限 Basic4android 測試版 :Basic4android 免費試用版本, 提供 30 天免費試用, 一個限制功能版本的 Basic4android, 只能使用核心函數庫來建立基本 Android App, 而且沒有 Basic4android 社群的完整存取權限, 只能下載部分 B4A 範例專案 中壢高商 8

11 Basic4android 的官網 ppc 是 Pocket PC 下載與安裝 B4A 開發環境 步驟一 : 下載與安裝 JDK JDK 7 以上版本 步驟二 : 下載與安裝 ADT Bundle 最新 4.4, 本書使用 4.22 版, 目標版本是 4.0 步驟三 : 下載與安裝 Basic4android B4A 2.71 測試版 步驟四 : 啟動與設定 Basic4android 步驟五 : 建立 Android 模擬器 AVD 下載與安裝 B4A 開發環境.ppt 中壢高商 9

12 建立第一個 AndroidApp 步驟一 : 新增與儲存 B4A 的 Android App 專案 步驟二 : 啟動 Android 模擬器 步驟三 : 編譯與執行 Android App 建立第一個 AndroidApp.ppt 專案 :Lesson1\HelloWorld\HelloWorld.b4a 使用 B4A 開發 Android App 的基本步驟 Step 1. 新增 B4A 專案 : 建立 B4A 專案和替每一個 B4A 專案新增專屬的資料夾 Step 2. 建立圖形使用介面 : 開啟 GUI 設計工具建立圖形使用介面, 依照規劃的版面配置新增所需的介面元件來編排使用介面 Step 3. 設定介面元件屬性 : 設定元件屬性值來調整尺寸 字型 色彩和外觀等 Step 4. 建立和撰寫事件處理程序的程式碼 : 依照活動 服務或介面元件觸發的事件, 例如 :Button 的 Click 事件, 建立所需的事件處理程序和撰寫處理的程式碼 Step 5. 編譯與執行 Android App: 在 Windows 開發電腦編譯 Android App, 和連接實機或啟動 Android 模擬器來測試執行 其建立步驟和 VB 視窗應用程式沒有什麼不同 中壢高商 10

13 B4A 活動模組的程式結構 Sub Process_Globals End Sub Sub Globals End Sub Sub Activity_Create(FirstTime As Boolean) End Sub Sub Activity_Resume End Sub Sub Activity_Pause (UserClosed As Boolean) End Sub B4A 活動模組的程式結構 - 說明 Process_Globals 程序 : 定義整個 App 各活動模組都能存取的全域變數 ;Globals 是目前活動模組可以存取的全域變數 Activity_Create(FirstTime As Boolean) 程序 : 當活動建立時呼叫的程序, 程序參數 FirstTime 判斷是否是第 1 次建立活動 Activity_Resume 程序 : 在建立活動呼叫 Activity_Create 後馬上呼叫的程序來進入執行狀態, 或從背景暫停狀態返回前景執行狀態時呼叫 Activity_Pause(UserClosed As Boolean) 程序 : 當活動從前景執行狀態進入背景暫停狀態時呼叫此程序, 程序參數 UserClosed 是布林值, 可以判斷是否是使用者操作才進入背景 中壢高商 11

14 B4A 的命名規則 名稱不能使用 B4A 語言的關鍵字和 B4A 內建物件的名稱 ( 不區分英文大小寫, 例如 : 因為內建 File 物件, 所以命名不可以是 File 或 file) 名稱必須是英文字母開頭, 不能包含句點. 運算子 括號或空白, 只能是英文字母 A-Z a-z 數字 0-9 和底線 _ 名稱不區分英文字母大小寫,abc Abc abc abc ABc 和 ABC 等都是同一個名稱 在宣告的有效範圍內須唯一 B4A 的關鍵字 B4A 語言的關鍵字和其他程式語言有些不同, 它是指核心函數庫 (Core Library) 的 Keywords 型態成員, 除了語法關鍵字外, 還包含一些存取內建物件屬性 數學 檔案處理 對話方塊等方法的成員, 例如 : Msgbox( 訊息視窗 ) 和 Sender( 事件來源物件 ) 等 中壢高商 12

15 B4A 的註解 B4A 的註解文字是使用 ' 符號開始的列, 或在程式列上此符號之後的文字內容 ( 不支援 Visual Basic 語言的 REM 關鍵字 ), 如下所示 : ' 大家好 Dim size1,size2 As Int ' 變數宣告 程式敘述的結束 B4A 可以使用 : 符號標示程式敘述的結束, 我們可以在同一列程式碼包含 2 個程式敘述, 第 1 個敘述是宣告 size 變數, 第 2 個指定 size 變數值, 如下所示 : Dim size As Int : size = 10 不同於 Visual Basic 語言的 : 符號是標示程式敘述的結束,B4A 隱含是一個換行字元 ( Carriage Return), 加上 : 表示是換行成二列程式碼, 而非程式敘述結束 中壢高商 13

16 太長的程式列 B4A 的單行程式碼如果太長, 基於程式編排的需要, 我們可以將它分成兩列來排列, 此時, 請在第 1 列程式碼的最後加上 _ 符號, 如下所示 : Dim size1,size2,size3,size4,size5, _ size6,size7,size8,size9 As Int 不支援 VS 2010 之後版本的隱含字串連接 基本資料型態 ( 源於 Java 語言 ) B4A 語言支援 8 種基本資料型態, 如下表所示 : 資料型態 說明 範圍最小值 範圍最大值 Boolean 布林 False True Byte 位元組 8Bits Short 短整數 16Bits Int 整數 16Bits Long 長整數 64Bits Float 單精度浮點數 1.4E E38 32Bits Double 雙精度浮點數 64Bits E E 308 Char 字元 N/A N/A 中壢高商 14

17 基本資料型態 ( 對比 VB 語言 ) B4A 語言支援 8 種基本資料型態, 如下表所示 : B4A 資料型態 Boolean Byte Short Int Long Float Double Char VB 資料型態 Boolean Byte Short Integer Long Single Double Char 非基本資料型態 除了基本資料型態的其他資料型態, 例如 : 使用 Type 關鍵字宣告的自訂型態 函數庫的物件 陣列或字串等都屬於非基本資料型態 其中陣列與字串型態的簡單說明, 如下表所示 : 資料型態 String Array 說明 字串, 一種字元陣列 陣列, 相同資料型態的變數集合, 使用索引值來存取 中壢高商 15

18 變數宣告 在 B4A 是使用 Dim 關鍵字宣告變數,As 關鍵字指定資料型態,B4A 不支援 Visual Basic 語言的常數 如下所示 : Dim Sum As Float Dim size1,size2 As Int Dim Capital, Interest, Rate As Double 程式碼宣告 1 個 Float 型態 2 個整數 Int 型態和 3 個 Double 型態的變數 B4A 在同一列宣告的多個變數可以分別指定不同的資料型態, 如下所示 : Dim name As String,score As Int 變數的初值 我們可以在宣告變數同時指定變數的初值, 如下所示 : Dim size3 As Int = 100 Dim Grade1 = 56.7, Grade2 As Float = 78.5 Dim i = 0, j = 2, k = 15 As Int Dim name = "Joe" As String, rate = 1.1 As Double, flag = True As Boolean 程式碼在宣告多個變數的同時就指定初值, = 等號可以在型態之後, 也可以在 As 關鍵字之前 中壢高商 16

19 自動 ( 隱含 ) 資料型態轉換 B4A 會自動依需求執行型態轉換, 例如 : 自動將數字轉換成字串 ; 字串轉換成數字 明確資料型態轉換 B4A 明確執行型態轉換的作法是直接將它指定給欲轉換型態的變數, 如下所示 : Dim intgrade1, intgrade2 As Int Dim dblgrade1 = 56.7, dblgrade2 = 78.5 As Double 將 Double 變數型態明確轉換成 Int 變數時, 只需使用指定敘述指定變數值即可, 如下所示 : intgrade1 = dblgrade1 intgrade2 = dblgrade2 程式碼將 Double 型態的值轉換成整數型態的值, 即變數 intgrade1 和 intgrade2 的值 中壢高商 17

20 算術運算式 算術運算式就是使用算術運算子建立的運算式, 其說明 (VB 語言的指數運算子是 ^) 如下表所示 : 運算子 說明 運算式範例 Power 指數 Power(7, 2) = 49, 即 負號 -7 * 乘法 2 * 7 = 14 / 除法 7 / 2 = 3.5 Mod 餘數 7 Mod 2 = 1 + 加法 = 9 - 減法 7 2 = 5 關係運算式 關係運算子沒有優先順序的分別, 通常是使用在迴圈和條件敘述作為判斷條件, 如下表所示 : 運算子 說明 運算式範例 結果 = 等於 6 = 4 False <> 不等於 6 <> 4 True < 小於 6 < 4 False > 大於 6 > 4 True <= 小於等於 6 <= 4 False >= 大於等於 6 >= 4 True 不支援 VB 語言的 Is, IsNot 和 Like 運算子 中壢高商 18

21 布林運算式 當迴圈和條件敘述的判斷條件不只一個時, 我們可以使用布林運算子連接多個關係運算式來建立更複雜的判斷條件, 其說明如下表所示 : 運算子 運算式範例 結果 Not (A) Not (5 > 3) False Not (B) Not (4 <= 2) True A AND B 5 > 3 AND 4 <= 2 False A OR B 5 > 3 OR 4 <= 2 True B4A 不支援 VB 語言的 Xor, AndAlso 和 OrElse 運算子 VB Not A;B4A 是 Not (A) 字串連接運算子 B4A 的字串連接運算子是 &, 可以連接多個字串變數或字串值, 其說明如下所示 : 運算子 說明 運算式範例 & 字串連接 "ab" & "cd" = "abcd" B4A 語言的換行符號是 CRLF 關鍵字 " 符號是 Quote 中壢高商 19

22 If/Then/Else If 條件敘述 If/Then/Else If 條件敘述新增 Else If 關鍵字 (VB 語言在 Else If 之間沒有空格 ) 建立多選一條件敘述, 如下 : If dayvalue = 1 Then out = out & " 星期日 " & CRLF Else If dayvalue = 2 Then out = out & " 星期一 " & CRLF Else If dayvalue = 3 Then out = out & " 星期二 " & CRLF Else If dayvalue = 7 Then out = out &" 星期六 " & CRLF Else out = out & " 無法分辨是星期幾 " & CRLF End If Select/Case 條件敘述 Select/Case 多選一條件敘述可以依照符合條件執行不同區塊的程式碼 (VB 是 Select Case), 如下所示 : Select dayvalue Case 1: out = out & " 周日假期 " & CRLF Case 2, 3, 4, 5, 6 out = out & " 工作天 " & CRLF Case 7: out = out & " 周末假日 " & CRLF Case Else out = out & " 無法分辨是星期幾 " & CRLF End Select 中壢高商 20

23 For/Next 迴圈 For/Next 迴圈可以執行固定次數的迴圈, 使用 Step 值來增加或減少計數器, 如果 Step 為 1 可以省略 Step 關鍵字 (Next 之後不支援加上變數 i, Next i) 例如 : 使用 For/Step/Next 迴圈, 每次增加 1, 執行 1 加到 10 的迴圈, 如下所示 : For i = 1 To 10 sum = sum + i out = out & i & " " Next out = out & CRLF & "1 加到 10: " & sum & CRLF Exit 關鍵字 在迴圈尚未到達結束條件時, 我們可以使用 Exit 關鍵字強迫跳出迴圈來結束迴圈執行,B4A 只需使用 Exit 關鍵字 ;Visual Basic 是 Exit Do 或 Exit For, 如下所示 : For counter = 1 To 100 If counter > 10 Then Exit sum = sum + counter out = out & counter & " " Next 中壢高商 21

24 B4A 不支援後測式迴圈 B4A 不支援後測式迴圏, 我們可以使用 Do/Loop 迴圈, 然後在無窮迴圈使用 If 條件配合 Exit 關鍵字來中斷迴圈執行來建立後測式迴圈, 如下所示 : counter = 1 : sum = 0 Do While counter >= 1 sum = sum + counter out = out & counter & " " counter = counter + 1 If counter > 10 Then Exit Loop out = out & CRLF & "1 加到 10: " & sum & CRLF Continue 關鍵字 B4A 的 Continue 關鍵字可以在迴圈尚未執行完前, 馬上執行下一次迴圈, 如下所示 : For counter = 0 to 100 If counter Mod 2 = 0 Then Continue Next B4A 只需 Continue 關鍵字 ;Visual Basic 語言是 Continue Do 或 Continue For 中壢高商 22

25 例外處理敘述 B4A 支援和 Visual Basic 語言相同的 Try/Catch/End Try, 不過,B4A 不支援 Finally 程式區塊, 如下所示 : Try Dim In As InputStream In = File.OpenInput(File.DirInternal, "MissingFile.txt") Catch lbloutput.text = LastException.Message End Try 在 Catch 使用 LastException 預建物件取得進一步的例外資訊, 即 Message 屬性 宣告一維陣列 B4A 陣列同樣也是使用 Dim 關鍵字宣告, 我們可以在宣告時指定陣列尺寸 例如 : 一維整數陣列的宣告, 如下所示 : Dim Names(3) As String 程式碼宣告 3 個元素的 Names 陣列, 括號是元素數 (Visual Basic 陣列是最大索引值 ), 其索引值是從 0 開始, 範圍是 0~2 共 3 個元素 我們可以使用變數指定陣列尺寸, 如下所示 : Dim arrsize As Int : arrsize = 3 Dim Names(arrSize) As String 中壢高商 23

26 一維陣列初始設定 B4A 陣列的初值需要使用 Array 關鍵字來宣告, 如下所示 : Dim Grades() As Int Grades = Array As Int(53, 76, 85) 程式碼宣告一維整數陣列 Grades 但沒有指定尺寸, 其尺寸是 Array As 後方型態 Int 括號中的初值個數, 陣列索引的最大值就是初值個數減一, 即 2 For/Next 迴圈走訪一維陣列 我們可以使用 For/Next 迴圈走訪陣列的每一個元素, 如下所示 : For i = 0 To Names.Length - 1 out = out & Names(i) & "-" & Grades(i) & CRLF Next 程式碼使用陣列物件的 Length 屬性取得陣列尺寸, 減一就是最大索引值, 可以從 0 至最大索引值來一一取出每一個元素 中壢高商 24

27 建立沒有參數和傳回值的程序 如果 Sub 宣告的程序沒有參數, 在宣告時不加上空括號, 呼叫時一定不能使用空括號 ( 如果有空括號,B4A 編譯器會誤認為是陣列 ), 例如 : 更改 App 標題文字的 ChangeTitle 程序, 如下所示 : Sub ChangeTitle Activity.Title = " 建立 B4A 程序 " End Sub 程序在 Sub 關鍵字之後是程序名稱, 因為沒有參數, 可以加上空括號, 即 ChangeTitle(), 也可以不加 在 Sub/End Sub 之間是程序的程式區塊 呼叫沒有參數和傳回值的程序 呼叫程序只需使用 ChangeTitle(B4A 不支援 Visual Basic 語言的 Call 關鍵字 ), 不可以使用 ChangeTitle(), 如下所示 : ChangeTitle 中壢高商 25

28 建立擁有參數沒有傳回值的程序 在程序名稱後的括號可以加上傳入參數, 如果不只一個, 請使用, 號分隔, 例如 : 顯示輸出結果的 PrintResult 程序, 如下所示 : Sub PrintResult(str As String) lbloutput.text = str End Sub 程序擁有一個參數 str, 其資料型態是 String 呼叫擁有參數沒有傳回值的程序 因為程序擁有參數, 所以在呼叫時, 除了程序名稱, 還需要使用括號來指定傳入值, 如下所示 : PrintResult(out) 程序呼叫傳入的參數值就是變數 out 的值 中壢高商 26

29 建立擁有參數和傳回值的程序 B4A 的程序也是函數一樣可以傳回值, 所以可以指定傳回值型態, 例如 : 計算利息的 CalInterest 程序, 如下所示 : Sub CalInterest(capital As Double, rate As Double) As Double Dim amount As Double amount = capital * rate / 100 Return amount End Sub 程序擁有 2 個參數, 在 As 關鍵字之後是傳回值型態,B4A 程序可以使用 Return 關鍵字來傳回值 呼叫擁有參數和傳回值的程序 因為程序有傳回值, 在呼叫程序時通常是位在運算式指定敘述的右邊, 如下所示 : interest = CalInterest(capital, rate) 不支援 VB 語言的 Function/End Function 中壢高商 27

30 傳值呼叫 B4A 是依資料型態區分傳值或傳址呼叫 傳值呼叫是指將變數的值傳入程序, 所以不會更改傳入的變數值,B4A 基本資料型態的變數和 String 型態都是使用傳值呼叫, 如下所示 : Sub CallByVal(value As Int, str As String) value = 45 str = " 江小魚 " End Sub 傳址呼叫 傳址呼叫是將變數實際儲存位址傳入程序,B4A 的非基本資料型態 (String 除外 ) 參數都是使用傳址呼叫, 它是將複製的參考傳入程序, 可以更改參數成員 ( 例如 : 陣列元素值 ), 但不能更變數本身的參考 ( 即陣列變數本身 ), 如下所示 : Sub CallByRef(Tests() As Int) Dim MyArr(1) As Int MyArr(0) = 30 Tests(0) = 50 Tests = MyArr End Sub 中壢高商 28

31 區域範圍 在 B4A 程序內宣告的變數, 只能在此程序的程式區塊中使用, 其他程序並不能存取, 稱為區域變數 ( 變數 a 和 c), 如下所示 : Sub SubA() Dim a, c As Int a = 3 c = 10 End Sub 全域變數範圍 -Process_Globals 程序 Process_Globals 程序 : 在此程序宣告的變數稱為行程變數, 可以在行程中 B4A 專案的所有模組存取, 不過, 不是所有型態都可以宣告成行程變數, 例如 : 介面元件的物件就不可以, 如下所示 : Sub Process_Globals Dim g As Int : g = 5 End Sub 中壢高商 29

32 全域變數範圍 -Globals 程序 Globals 程序 : 在此程序宣告的變數稱為活動變數, 可以在目前活動模組的所有程序來存取, 如下所示 : Sub Globals Dim lbloutput As Label Dim a As Int : a = 1 Dim b As Int : b = 2 End Sub 變數範圍的注意事項 在 Process_Globals 和 Globals 程序宣告全域變數後, 其他程序就算宣告同名變數, 存取的仍然是全域變數, 因為除了第 1 次宣告變數外, 在 B4A 重複宣告同名變數, 當轉換成 Java 程式碼後, 程式碼只是初始變數成為預設值, 並不會建立全新變數 中壢高商 30

33 B4A 的集合物件 B4A 支援兩種集合物件, 如下所示 : List 物件 Map 物件 B4A 有很多物件的方法都是使用 List 和 Map 物件作為參數或傳回值, 例如 : 檔案處理和建立選擇對話方塊 專案 :Lesson3\ 兒童數學訓練 \ 兒童數學訓練.b4a GUI 工具 - 建立兒童數學訓練 步驟一 : 啟動 B4A 新增專案 步驟二 : 啟動 Android 模擬器 步驟三 : 開啟 GUI 設計工具連接 Android 模擬器 步驟四 : 在 GUI 設計工具新增介面元件 步驟五 : 在 GUI 設計工具設定介面元件的屬性 步驟六 : 自動產生程式碼與儲存版面配置檔 步驟七 : 編輯事件處理程序的程式碼 步驟八 : 編譯與執行 Android App 中壢高商 31

34 B4A 的 GUI 介面元件 VS VB 控制項 B4A 介面元件 Visual Basic 控制項 Activity Form Button Button CheckBox CheckBox EditText TextBox ImageView PictureBox Label Label ListView ListView Panel Panel RadioButton RadioButton ScrollView N/A SeekBar TrackBar( 類似 ) Spinner N/A TabHost TabControl ToggleButton N/A WebView WebBrowser 屬性 Name Type Event Name Parent Left Top Width Height Enabled Visible Tag GUI 介面元件的共同屬性 說明 元件名稱, 建議使用有意義的名稱, 而且在開頭使用 3 個字元來標示元件種類, 例如 :lbl btn edt 等 元件型態的唯讀屬性 處理事件的事件處理程序名稱, 預設與 Name 屬性值相同 事件處理程序名稱的格式是此屬性值加上 _ 符號, 再加上事件名稱, 例如 :Event Name 屬性值 Button1 的 Click 事件處理程序名稱為 Button1_Click 父元件名稱 ( 有些介面元件是容器元件, 可以包含子元件 ), 最上層是 Activity 活動 與父元件左方邊界的 X 軸座標, 單位是 dip 與父元件上方邊界的 Y 軸座標, 單位是 dip 元件寬度, 單位是 dip 元件高度, 單位是 dip 此元件是否可以使用,True 是可以 ; 否為不可以 此元件是否可見,True 是可見 ; 否為隱藏 此屬性是用來儲存額外資訊, 以簡化程式設計 中壢高商 32

35 介面元件 Activity AutoCompleteEditText Button CheckBox EditText HorizontalScrollView ImageView Label ListView Panel RadioButton ScrollView SeekBar Spinner TabHost ToggleButton WebView 事件種類 支援的事件種類 Click LongClick Touch KeyPress KeyUp WindowFocusChanged ItemClick TextChanged EnterPressed FocusChanged Click LongClick Down Up CheckedChange EnterPressed FocusChanged TextChanged ScrollChanged Click LongClick Click LongClick ItemClick ItemLongClick Click LongClick Touch CheckedChange ScrollChanged ValueChanged ItemClick Click LongClick TabChanged CheckedChange PageFinished OverrideUrl UserAndPasswordRequired 建立事件處理程序 我們可以在 B4A 專案新增事件處理程序的程式碼, 實務上, 主要是從 GUI 設計工具自動產生元件宣告和事件處理程序, 當然, 在程式碼編輯器一樣可以自行輸入程式碼來建立事件處理程序 在 GUI 設計工具產生事件處理程序 在程式碼編輯器自行輸入事件處理程序 中壢高商 33

36 介面元件的事件處理程序 B4A 和 Visual Basic 語言都是使用事件驅動程式設計來建立應用程式, 整個程式結構就是在處理各種事件的事件處理程序, 當我們使用 GUI 設計工具新增介面元件 ( 如同 Visual Basic 控制項 ) 後, 例如 : 新增名為 mybutton 按鈕元件, 就可以在 Main 活動模組建立處理 Click 事件的事件處理程序, 如下所示 : Event Name 屬性值, 不是 Name 屬性 Sub mybutton_click Msgbox(" 按下按鈕!", "") End Sub 專案 :Lesson4\Spinner 清單元件 \ 匯率轉換程式.b4a Spinner 清單元件 Android 提供兩種清單元件 : Spinner 和 ListView 元件, 可以顯示一長串清單項目來供使用者選擇 Spinner 元件類似 Windows 作業系統的下拉式清單方塊, 它是一個單選的清單元件 Spinner 中壢高商 34

37 建立 Spinner 清單元件 在 B4A 的 GUI 設計工具可以執行 Add View>Spinner 指令新增 Spinner 元件, 不過, 沒有提供介面來新增選項, 我們需要使用程式碼呼叫 Add() 方法來新增選項, 如下所示 : Dim spntype As Spinner spntype.add(" 美金 ") spntype.add(" 日元 ") Add() 方法新增選項 spntype.add(" 人民幣 ") Spinner 清單元件的 ItemClick 事件 Spinner 元件是一個下拉式清單方塊, 當使用者選擇選項後, 就觸發 ItemClick 事件, 在事件處理程序處理選擇, 如下所示 : Sub spntype_itemclick(position As Int, Value As Object) Select Position Case 0 : rate = 29.9 ' 美金 Case 1 : rate = ' 日元 Case 2 : rate = ' 人民幣 End Select End Sub 中壢高商 35

38 專案 :Lesson4\ListView 清單介面 I\ 匯率轉換程式 II.b4a ListView 清單介面 ListView 元件是各種行動裝置作業系統相當常見的使用介面, 實務上, 如果整個活動只擁有一個 ListView 元件, 此時的 ListView 元件是一個選單用途的元件, 而且, 通常就是 Android App 的主選單 ListView 建立單行項目的 ListView 元件 在 B4A 的 GUI 設計工具可以執行 Add View>ListView 指令新增 ListView 元件, 不過, B4A 沒有提供介面來新增選項, 我們需要自行使用程式碼來新增選項, 依需求可以建立單行和兩行內容的項目 ListView 元件呼叫 AddSingleLine() 方法新增 ListView 元件的單行選項, 參數是選項名稱的字 串, 如下所示 : AddSingleLine() 方法 Dim ListView1 As ListView 新增選項 ListView1.AddSingleLine(" 陳會安 ") 中壢高商 36

39 ListView 元件單行項目的傳回值 ListView 元件的項目還可以指定所需的傳回值, 如下所示 : Dim lsvtype As ListView lsvtype.addsingleline2(" 美金 ", 29.9) lsvtype.addsingleline2(" 日元 ", ) lsvtype.addsingleline2(" 人民幣 ", 4.861) AddSingleLine2() 方法新增選項 AddSingleLine2() 方法新增 ListView 元件的單行選項, 第 2 個參數指定傳回值, 可以呼叫 GetItem() 方法或在 ItemClick 事件處理程序取得此傳回值, 以此例的傳回值是匯率 單行項目 ListView 元件的 ItemClick 事件 ListView 元件當使用者選擇選項後, 就會觸發 ItemClick 事件, 如下所示 : Sub ListView1_ItemClick(Position As Int, Value As Object) Dim amount As Double = edtamount.text lbloutput.text = " 兌換成新台幣的金額 : " & (amount * Value) End Sub 第 1 個參數是選項索引位置 ( 從 0 開始 ), 第 2 個參數是選項值,AddSingleLine() 方法新增選項, 其值是參數的選項名稱 ;AddSingleLine2() 方法新增選項, 其值是第 2 個參數 Value 的傳回值 中壢高商 37

40 專案 :Lesson4\ 訊息視窗 \ 猜數字遊戲.b4a B4A 支援源於 Visual Basic 的 Msgbox 訊息視窗和 Android 原生的 Toast 彈跳訊息框 訊息視窗 Msgbox Toast Msgbox 訊息視窗 訊息視窗可以在對話方塊顯示一段訊息和一個 OK 按鈕, 例如 : 在 Android App 建立一個名為 猜數字遊戲 的訊息視窗, 顯示開始遊戲的訊息文字, 如下所示 : Msgbox(" 請輸入數字開始遊戲 ", " 猜數字遊戲 ") 第 1 參數是訊息文字, 第 2 個參數是標題文字 確認訊息視窗是使用 Msgbox2() 方法, 如下所示 : Dim result As Int result = Msgbox2(" 共猜 : " & time & _ " 次, 按 [ 確定 ] 鈕再玩一次.", " 猜數字遊戲 ", _ " 確定 ", "", " 結束 ", Null) 中壢高商 38

41 Msgbox 訊息視窗 - 取得使用者操作 Msgbox2() 方法的傳回值是使用者按下了哪一個按鈕, 我們可以使用 If 條件來判斷使用者的操作, 如下所示 : If result = DialogResponse.POSITIVE Then End If 條件判斷是否按下 POSITIVE 鈕, DialogResponse.CANCEL 是 CANCEL 鈕 ; DialogResponse.NEGATIVE 是 NAGATIVE 鈕 Toast 彈跳訊息框 Toast 訊息是在行動裝置顯示一個彈跳訊息框, 可以在此訊息框顯示一段訊息文字, 且只保留一段時間 例如 : 使用 Toast 彈跳訊息框顯示目前猜測的數字太大, 如下所示 : ToastMessageShow(num & " 數字太大...", False) ToastMessageShow() 方法是關鍵字, 第 1 個參數是顯示的訊息字串, 在第 2 個參數決定顯示時間, 值 False 較短 (2 秒 );True 顯示時間較長 ( 3 秒 ) 中壢高商 39

42 專案 :Lesson4\ 選項選單 \ 溫度轉換程式.b4a 選項選單 Android 的選項選單 ( Options Menu) 是當使用者按下行動裝置的 MENU 鍵後, 在下方顯示的選單 Options Menu 新增選項選單 B4A 的 Activity 物件是活動本身, 此物件提供 3 個方法來新增選項選單, 第 1 個方法是建立單純文字項目的選項, 如下所示 : Activity.AddMenuItem(" 轉成攝氏 ", "ConvertC") AddMenuItem() 方法可以新增選單的選項, 第 1 個參數是選項名稱, 第 2 個參數是事件名稱 中壢高商 40

43 選項的事件處理 當使用者選擇選項, 就會產生 Click 事件, 呼叫名為 ConvertC_Click 的事件處理程序 (ConvertC 是第 2 個參數的事件名稱 Event Name), 如下所示 : Sub ConvertC_Click End Sub B4A 模組種類 活動模組 (Activity Modules): 每一個活動都擁有專屬活動模組, 負責處理活動的生命周期, 對比 VB 的 Form 表單, 多活動對比多表單 程式碼模組 (Code Modules): 程式碼模組的內容是程式碼, 它是一個工具箱用來支援 Android App 開發, 在程式碼模組之中不允許擁有任何活動, 對比 VB 的 Module 模組 服務模組 (Service Modules): 每一個 Android 服務都擁有對應的服務模組, 這是一些在背景執行的工作 類別模組 (Class Modules): 類別模組是 Basic4android 2.0 版新增的模組, 這是一種建立物件導向程式設計類別的模組 中壢高商 41

44 VB 專案 B4A 專案 ( 步驟 ) Step 1: 參考 VB 表單介面的控制項, 在 B4A 使用 GUI 工具建立對應的使用介面, 建議使用相同的 Name 屬性值 Step 2 : 使用 B4A 的 GUI 工具建立介面元件所需的事件處理程序 Step 3: 複製事件處理程式碼, 從 Form1.vb 程式檔案至 B4A 的事件處理程序 Step 4: 將 VB 程式碼修改成 B4A 的 VB 程式碼 VB 專案 B4A 專案 ( 使用介面 ) 專案 :VS2012\ 井字遊戲.sln 專案 :Lesson4\ 井字遊戲 \ 井字遊戲.b4a 中壢高商 42

45 VB 專案 B4A 專案 ( 全域變數 ) 專案 :VS2012\ 井字遊戲.sln 專案 :Lesson4\ 井字遊戲 \ 井字遊戲.b4a VB 專案 B4A 專案 ( 函數 ) 專案 :VS2012\ 井字遊戲.sln 專案 :Lesson4\ 井字遊戲 \ 井字遊戲.b4a 中壢高商 43

46 VB 專案 B4A 專案 ( 事件處理程序 ) 專案 :VS2012\ 井字遊戲.sln 專案 :Lesson4\ 井字遊戲 \ 井字遊戲.b4a 第二個 VB->B4A 轉換範例 專案 :VS2012\ 拉霸遊戲.sln 專案 :Lesson4\ 拉霸遊戲 \ 拉霸遊戲.b4a 中壢高商 44

47 B4A 活動的生命周期 Android 程式設計的主要工作是撰寫程式碼來回應 Android App 產生的狀態改變 B4A 活動簡化了 Android 活動的生命周期 ( 沒有停止 ), 同樣的, 我們重視的是不同狀態之間的轉換, 如下圖所示 : 活動生命周期的狀態說明 -1 啟動狀態 : 當 Android App 不在記憶體中時, 執行程式就是進入啟動狀態,B4A 會依序呼叫 Activity_Create 和 Activity_Resume 兩個程序來轉換至執行狀態 執行狀態 : 活動位在執行狀態 ( 移至前景 ) 表示目前在螢幕上顯示且與使用者進行互動,Android 作業系統在任何時間點都只會有一個處於執行狀態的活動, 執行狀態的活動擁有最高權限使用記憶體與資源來提昇程式執行效率, 以便更快回應使用者的操作 中壢高商 45

48 活動生命周期的狀態說明 -2 暫停狀態 : 暫停狀態的活動是從前景移至背景, 此時的 App 仍然保留在記憶體, 只是使用者看不到,B4A 會呼叫 Activity_Pause 程序, 從執行狀態轉換至暫停狀態 移除狀態 : 移除狀態的活動是已經刪除的活動 ( 可呼叫 Activity.Finish() 方法刪除 ), 表示已經釋放活動佔用的資源且不存在記憶體 活動管理員會自動依據記憶體的使用情況, 決定活動是否需要刪除, 以便空出更多記憶體讓執行狀態的活動能夠正常的運作 活動生命周期的事件 在 B4A 活動的整個生命周期中, 共有 3 個程序會在活動的狀態轉換時呼叫, 這些程序可以讓開發者回應狀態改變, 撰寫所需的 B4A 程式碼 (B4A 簡化了 Android 活動的生命周期 ), 如下圖所示 : 中壢高商 46

49 Activity_Create(FirstTime As Boolean) 程序 當使用者啟動 Android App, 或更改裝置設定 ( 活動會刪除後再建立 ), 例如 : 旋轉螢幕, 就會建立活動和呼叫 Activity_Create 程序, 此程序的主要目的是載入版面配置檔, 或使用程式碼建立版面配置的使用介面 在此程序擁有 1 個 FirstTime 布林參數, 可以判斷對於目前的行程來說, 活動是否是第 1 次建立 ( 值 True 為第 1 次 ), 通常, 我們會使用此參數來初始 Process_Globals 程序宣告的行程變數 Activity_Pause(UserClosed As Boolean) 程序 每一次當活動從前景執行狀態進入背景暫停狀態時, 就會呼叫 Activity_Pause 程序, 或當活動在前景, 但使用者更改裝置設定導致活動暫停和移除時, 也會呼叫 Activity_Pause 程序 程序的參數 UserClosed 是一個布林值, 可以判斷是否是使用者操作才進入背景 中壢高商 47

50 Activity_Resume 程序 Activity_Resume 程序是在建立活動呼叫 Activity_Create 後馬上呼叫, 然後進入執行狀態, 或從背景暫停狀態返回前景執行狀態時呼叫 當我們啟動 Android App 建立活動, 或在目前活動呼叫 StartActivity() 方法來啟動其他活動, 建立活動的過程一定會依序呼叫 Activity_Create 和 Activity_Resume 程序後, 才進入前景的執行狀態 專案 :Lesson4\ 活動生命周期 \ 活動生命周期.b4a 測試活動生命周期的事件 在 B4A IDE 右方 Logs 標籤可以看到呼叫程序的訊息, 如下圖所示 : 訊息顯示呼叫 Activity_Create 且是第 1 次, 然後呼叫 Activity_Resume, 現在活動已經進入執行狀態, 可以在模擬器看到執行結果, 中壢高商 48

51 專案 :Lesson4\ 活動生命周期 \ 活動生命周期.b4a 測試活動生命周期的事件 測試一 : 請在模擬器按 F3 鍵執行打電話程式, 然後按 返回 鍵離開打電話程式, 可以再度看到 B4A 程式, 此時在 Logs 標籤可以看到此活動暫停 ( 參數值為 false), 和再度啟動, 如下圖所示 : 專案 :Lesson4\ 活動生命周期 \ 活動生命周期.b4a 測試活動生命周期的事件 測試二 : 現在 B4A 專案是執行狀態, 請按 返回 鍵離開活動, 可以在 Logs 標籤看到再次呼叫 Activity_Pause 程序, 此次的參數值為 true, 因為是使用者結束活動, 如下圖所示 : 中壢高商 49

52 Canvas 物件的基礎 Canvas 物件可以在其他介面元件或 Bitmap 物件上繪圖, 當我們初始 Canvas 物件指定參數的介面元件後, 就會建立一個 Bitmap 物件, 並且將介面元件的背景複製到此 Bitmap 物件來建立 Canvas 物件, 我們所繪出的圖形是繪在此 Bitmap 物件上 Canvas 物件可以在 Activity 活動 ImageView 元件 Panel 元件和 Bitmap 物件上繪圖, 使用 Canvas 物件繪出的圖形並不會馬上更新使用介面來顯示, 我們需要呼叫目標元件的 Invalidate() 方法來更新元件, 才能顯示繪出的圖形 建立 Canvas 畫布 宣告 Canvas 物件和 Panel 元件 Canvas 物件是一個繪圖物件, 提供繪圖方法和將其他介面元件或 Bitmap 物件建立成畫布, 筆者稱為 Canvas 畫布 首先, 我們需要在 Globals 程序宣告 Canvas 物件和欲繪圖的 Panel 元件, 如下所示 : Sub Globals Dim pnlgraph As Panel Dim cvsgraph As Canvas End Sub 中壢高商 50

53 建立 Canvas 畫布 - Panel 元件的畫布 我們準備建立一張 Panel 元件的畫布, 如下所示 : cvsgraph.initialize(pnlgraph) cvsgraph.drawcolor(colors.white) 上述程式碼呼叫 Initialize() 方法初始 Canvas 物件, 參數是 Panel 元件, 然後呼叫 DrawColor() 方法繪出畫布的背景色彩, 以此例是白色 現在, 我們可以在活動模組的 Activity_Resume 程序呼叫 Canvas 物件的方法來繪圖 Canvas 畫布是一個長方形區域, 即介面元件或 Bitmap 物件的尺寸, 在左上角為原點, 其座標是 (0, 0),X 軸從左到右 ;Y 軸由上到下, 如右圖所示 : Canvas 畫布的座標系統 中壢高商 51

54 B4A 專案 :Lesson5\ 基本繪圖功能 \ 基本繪圖功能.b4a Canvas 物件提供基本繪圖方法, 可以讓我們繪出直線 長方形 圓形 橢圓形和文字內容 繪出直線 Canvas 物件是呼叫 DrawLine() 方法繪出直線, 如下所示 : cvsmain.drawline(20dip, 20dip, 160dip, 20dip, Colors.Red, 3dip) 方法的前 2 個參數是第 1 個點 (x1, y1) 座標, 第 3 和 4 個參數是第 2 個點 (x2, y2) 座標, 第 5 個參數是色彩, 最後 1 個參數是線寬度 DrawLine() 方法可以使用第 5 個參數的色彩和第 6 個參數的線條寬度, 從第 1 個點座標繪出一條直線至第 2 個點座標 中壢高商 52

55 繪出長方形 Canvas 物件繪出長方形方法是 DrawRect() 方法, 不過, 它需要建立 Rect 物件定義長方形尺寸, 如下所示 : Dim rect1 As Rect rect1.initialize(20dip, 40dip, 150dip, 100dip) Initialize() 方法的前 2 個參數是長方形左上角座標 (x1, y1), 即 Rect 物件的 Left 和 Top 屬性, 後 2 個座標是右下角座標 (x2, y2), 即 Right 和 Bottom 屬性 繪出長方形如下所示 : cvsmain.drawrect(rect1, Colors.Red, False, 3dip) 方法的第 1 個參數是長方形尺寸的 Rect 物件, 第 2 個參數是色彩, 第 3 個參數決定是否填滿, 值 True 是填滿 ;False 只繪出邊框, 最後 1 個參數是線條寬度 繪出圓形 Canvas 物件是使用 DrawCircle() 方法繪出圓形, 如下所示 : cvsmain.drawcircle(220dip, 70dip, 30dip, Colors.Red, False, 3dip) 方法的前 2 個參數是圓心 (x, y) 座標, 第 3 個參數是半徑, 第 4 個參數是色彩, 第 5 個參數決定是否填滿, 值 True 是填滿 ;False 只繪出邊框, 最後 1 個參數是線條寬度 中壢高商 53

56 繪出橢圓形 Canvas 物件繪出橢圓形方法是 DrawOval() 方法, 我們是在 Rect 物件的範圍內繪出橢圓形, 如下所示 : Dim rect2 As Rect rect2.initialize(20dip, 120dip, 150dip, 190dip) 建立 Rect 物件 rect2 後, 就可以繪出橢圓形, 如下所示 : cvsmain.drawoval(rect2, Colors.Red, False, 5dip) 方法的第 1 個參數是橢圓形尺寸的 Rect 物件, 第 2 個參數是色彩, 第 3 個參數決定是否填滿, 值 True 是填滿 ;False 只繪出邊框, 最後 1 個參數是線條寬度 繪出文字內容 Canvas 物件是使用 DrawText() 方法在畫布繪出文字內容, 如下所示 : cvsmain.drawtext("b4a 繪圖 ", 190dip, 150dip, Typeface.DEFAULT, _ 20, Colors.Red, "LEFT") 方法的第 1 個參數是繪出的字串, 第 2 和 3 個參數是繪出位置的參考座標 (x, y), 因為繪出座標會因文字對齊方式而不同, 第 4 個參數是字型, 以此例為預設字型, 第 5 個參數是文字尺寸, 第 6 個參數是文字色彩, 最後 1 個參數是文字對齊方式, 可以是 :"LEFT" "CENTER" 和 "RIGHT" 中壢高商 54

57 B4A 專案 : 繪出圖檔 \ 繪出圖檔 \ 繪出圖檔.b4a 載入圖檔 我們可以使用 Canvas 物件的方法來載入圖檔 並且繪出剪裁 旋轉和翻轉圖片效果, 不只如此, 我們還可以將 Canvas 畫布繪出的圖形儲存成圖檔 首先載入圖檔建立 Bitmap 物件 Bmp, 如下所示 : Dim Bmp As Bitmap Bmp.Initialize(File.DirAssets, "Cow.jpg") 繪出圖檔 Canvas 物件是使用 DrawBitmap() 方法繪出圖檔的 Bitmap 物件, 如下所示 : Dim DestRect As Rect DestRect.Initialize(20dip, 10dip, 20dip + 100dip, 10dip + 100dip) cvsgraph.drawbitmap(bmp, Null, DestRect) 方法使用 Rect 物件定義繪出區域, 第 1 個參數是繪出的 Bitmap 物件, 第 2 個參數是來源區域的 Rect 物件,Null 表示全部, 第 3 個參數是實際顯示區域的目標 Rect 物件, 如果尺寸比原圖大, 就是放大 ; 反之是縮小 中壢高商 55

58 繪出剪裁的圖檔 DrawBitmap() 方法的參數有來源和目的 Rect 物件, 如果來源 Rect 物件只有原圖的部分區域, 就是剪裁圖檔 首先定義剪裁的 Rect 物件, 如下所示 : Dim SrcRect As Rect SrcRect.Initialize(0, 0, Bmp.Width / 2, Bmp.Height) SrcRect 物件尺寸寬度只有原來一半, 繪出剪裁圖片, 如下所示 : DestRect.Left = 150dip DestRect.Right = 150dip + 100dip cvsgraph.drawbitmap(bmp, SrcRect, DestRect) 程式碼直接更改目標 DestRect 區域物件的 Left 和 Right 屬性值後, 呼叫 DrawBitmap() 方法繪出剪裁圖片, 因為有指定來源的 SrcRect 物件 繪出旋轉的圖檔 如同第 節的方法,DrawBitmap() 方法也有繪出旋轉圖形的 DrawBitmapRotated() 方法, 例如 : 順時鐘方向旋轉 70 度, 如下所示 : Dim Rect1 As Rect Rect1.Initialize(20dip, 200dip, 20dip + 100dip, 200dip + 100dip) cvsgraph.drawbitmaprotated(bmp, Null, Rect1, 70) 方法的前 3 個參數和 DrawBitmap() 方法相同, 最後 1 個參數是旋轉角度 ( 順時鐘方向 ) 中壢高商 56

59 繪出翻轉的圖檔 除了旋轉圖檔,Canvas 還提供繪出翻轉圖檔的 DrawBitmapFlipped() 方法, 例如 : 水平翻轉圖檔, 如下所示 : Rect1.Left = 150dip Rect1.Right = 150dip + 100dip cvsgraph.drawbitmapflipped(bmp, Null, Rect1, False, True) 方法的前 3 個參數和 DrawBitmap() 方法相同, 第 4 個參數是垂直翻轉, 值 True 是翻轉 ;False 為沒有, 最後 1 個參數是水平翻轉, 值 True 是翻轉 ; False 為沒有 將 Canvas 畫布的圖形儲存成檔案 對於 Canvas 畫布的 Bitmap 物件, 我們可以將它儲存成圖檔, 如下所示 : Dim Out As OutputStream Out = File.OpenOutput(File.DirRootExternal, "Graph.png", False) cvsgraph.bitmap.writetostream(out, 100, "PNG") Out.Close 程式碼宣告 OutputStream 輸出串流物件後, 呼叫 File.OpenOutput() 方法開啟輸出串流的 Graph.png 圖檔, 然後呼叫 Bitmap 物件的 WriteToStream() 方法將 Bitmap 物件寫入串流, 第 1 個參數是輸出串流, 第 2 個參數是品質 0~100, 最後 1 個參數是圖檔格式 "PNG" 或 "JPEG" 中壢高商 57

60 B4A 專案 : Lesson5\ImageView 元件 \ImageView 元件的使用.b4a 建立 ImageView 元件 ImageView 元件可以在 Designer 視窗執行 Add View>ImageView 指令來新增, 或自行使用程式碼來建立, 如下所示 : Sub Globals Dim ImageView1 As ImageView End Sub ImageView1.Initialize("ImageView1") 程式碼使用 Initialize() 方法初始物件, 參數是事件名稱 B4A 專案 : Lesson5\ImageView 元件 \ImageView 元件的使用.b4a 指定 ImageView 元件顯示的圖片 然後使用 Bitmap 屬性指定顯示的圖片, 如下所示 : igvcow.bitmap = LoadBitmapSample(File.DirAssets, "Cow.jpg", 100, 100) 使用 LoadBitmapSample() 方法 ( 此為關鍵字 ) 載入專案的 Cow.jpg 圖檔, 最後 2 個參數是圖片尺寸的最大寬度與最大高度, 如果圖檔尺寸比較大, 就是建立縮圖 如果需要載入全尺寸圖檔, 請使用 LoadBitmap() 方法 ( 此為關鍵字 ), 如下所示 : igvoutput.bitmap = LoadBitmap(File.DirAssets, "Snake.jpg") 中壢高商 58

61 Android 的檔案 一般來說, 大部分應用程式都需要儲存一些應用程式所需的資料, 即存取永久儲存體 (Persistent Storage) 的儲存裝置來寫入與讀取資料, 我們最常使用的儲存種類有 : 檔案和資料庫 在討論 Android 檔案時, 我們需要先了解 Android 檔案的命名規則和可以在哪些位置儲存檔案 Android 的檔案名稱 Android 作業系統的檔案基本命名規則, 如下所示 : 檔案名稱可以使用 a-z A-Z 0-9 _ 底線等字元, 或使用 + - % 和 & 字元 檔案名稱不允許空白 * 和? 字元 名稱區分英文字母大小寫,MyFile.txt 和 myfile.txt 是不同檔案 中壢高商 59

62 Android 檔案的儲存位置 File.DirAssets: 此目錄是位在 Android App 的.apk 檔案中, 隨著 APK 檔一起安裝至 Android 作業系統, 我們是在 B4A 專案的 Files 標籤加入此目錄的檔案, 這些檔案是唯讀, 不允許寫入資料 File.DirInternal/File.DirInternalCache: 這兩個目錄是儲存在裝置主記憶體的應用程式專屬檔案, 其他 Android App 並無法存取這些檔案, 如果 Android 作業系統需要更多記憶體空間時, 位在暫存目錄的檔案會被清除 File.DirRootExternal: 儲存在記憶卡根目錄, 通常是指 SD 卡 File.DirDefaultExternal: 這是儲存在 SD 卡的應用程式預設目錄, 其格式為 :< 記憶卡 >/Android/data/< 套件 >/files/, 此目錄如果有需要, 就會自動建立, 而且其他應用程式也可以存取這些檔案 File 預建物件 - 儲存位置與檢查檔案是否存在 File 預建物件提供相關屬性與方法來檢查外部儲存媒體是否可讀或可寫, 檔案是否存在, 其說明如下表所示 : 屬性與方法說明 File.ExternalReadable 此屬性可以檢查外部儲存媒體是否可讀取, 值 True 為可讀 ;False 為不可 File.ExternalWritable 此屬性可以檢查外部儲存媒體是否可寫入, 值 True 為可寫 ;False 為不可 File.Exists(Dir, FileName) 檢查參數的檔案是否存在, 第 1 個參數是上一節的儲存位置, 第 2 個參數是檔案名稱, 傳回 True 表示存在 ;False 為不存在 中壢高商 60

63 File 預建物件 - 文字檔案讀寫 File 預建物件關於文字檔案讀寫的相關方法說明 ( 存取的檔案是位在第 1 個參數 Dir 目錄, 檔案名稱是第 2 個參數 ), 如下表所示 : 方法 File.WriteString(Dir, FileName, Text) File.ReadString(Dir, FileName) File.WriteList(Dir, FileName, List) File.ReadList(Dir, FileName) File.WriteMap(Dir, FileName, Map) File.ReadMap(Dir, FileName) 說明 將參數 Text 字串寫入參數檔案 讀取參數檔案傳回檔案內容字串 將參數 List 物件寫入參數檔案 讀取參數檔案傳回檔案內容的 List 物件 將參數 Map 物件寫入參數檔案 讀取參數檔案傳回檔案內容的 Map 物件 B4A 專案 :Lesson5\ 行動 Memo\ 行動 Memo(II).b4a WriteString() 方法寫入字串 對於文字檔案, 我們可以使用 WriteString() 方法將字串寫入檔案, 如下所示 : File.WriteString(File.DirInternal, "note" & slot & ".txt", content) 方法的第 1 個參數是 Android 儲存位置的目錄, 第 2 個參數是檔案名稱, 可以將最後 1 個參數的 content 字串寫入檔案 中壢高商 61

64 B4A 專案 :Lesson5\ 行動 Memo\ 行動 Memo(II).b4a ReadString() 方法讀取字串 讀取檔案內容是使用 ReadString() 方法, 如下所示 : content = File.ReadString(File.DirInternal, "note" & cslot & ".txt") content 變數是取得的檔案內容, 方法第 1 個參數是第 節儲存位置的目錄, 第 2 個參數是檔案名稱 在讀取前, 我們可以呼叫 File.Exist() 方法檢查檔案是否存在, 如下所示 : If File.Exists(File.DirInternal,"note" & cslot & ".txt") Then End If B4A 專案 :Lesson5\ 讀寫 List 物件 \ 學生課程註冊.b4a 建立寫入檔案的 List 物件 對於程式使用的 List 物件 ( 清單資料 ), 我們可以直接讀寫 List 物件來處理文字檔案, 使用的是 WriteList() 與 ReadList() 方法 例如 : 將學生註冊課程姓名清單的 List 物件寫入文字檔案 首先建立 List 物件, 如下所示 : Dim Students As List Students.Initialize() Students.Add(edtName.Text) 程式碼宣告和初始 List 物件後, 新增一位學生資料至 List 物件 中壢高商 62

65 B4A 專案 :Lesson5\ 讀寫 List 物件 \ 學生課程註冊.b4a WriteList() 方法寫入 List 物件 然後將 List 物件寫入學生註冊資料的檔案, 如下所示 : File.WriteList(File.DirRootExternal, myfile, Students) 方法的第 1 個參數是 Android 儲存位置的目錄, 第 2 個參數是檔案名稱, 可以將最後 1 個參數的 List 物件 Students 寫入檔案 B4A 專案 :Lesson5\ 讀寫 List 物件 \ 學生課程註冊.b4a ReadList() 方法讀取 List 物件 讀取檔案是使用 ReadList() 方法, 如下所示 : Students = File.ReadList(File.DirRootExternal, myfile) 程式碼可以取得檔案內容的 List 物件 Students, 方法的第 1 個參數是 Android 儲存位置的目錄, 第 2 個參數是檔案名稱 中壢高商 63

66 B4A 專案 :Lesson5\ 讀寫 List 物件 \ 學生課程註冊.b4a 將讀取 List 物件建立 ListView 元件的項目 在讀取 List 物件後, 就可以將 List 物件元素新增成為 ListView 元件的項目, 如下所示 : ListView1.Clear() For i = 0 To Students.Size - 1 ListView1.AddSingleLine(Students.Get(i)) Next 程式碼呼叫 Clear() 方法清除項目資料後, 使用 For/Next 迴圈走訪 List 物件的每一個元素, 和呼叫 AddSingleLine() 方法加入成為 ListView 元件的清單項目 B4A 專案 :Lesson\ 讀寫 Map 物件 \ 我的最愛.b4a 建立寫入檔案的 Map 物件 對於程式使用的 Map 物件 ( 鍵值資料 ), 如同 List 物件, 我們也可以直接讀寫 Map 物件來處理文字檔案, 使用的是 WriteMap() 與 ReadMap() 方法 例如 : 將我的最愛書籤的網站名稱 ( 鍵 ) 和 URL 網址 ( 值 ) 建立成 Map 物件, 和寫入文字檔案 首先建立 Map 物件, 如下所示 : Dim items As Map items.initialize() items.put(edttitle.text, edturl.text) 程式碼宣告和初始 Map 物件後, 新增一個書籤的網站名稱和 URL 網址資料至 Map 物件 中壢高商 64

67 B4A 專案 :Lesson\ 讀寫 Map 物件 \ 我的最愛.b4a WriteMap() 方法寫入 Map 物件 然後寫入 Map 物件至檔案, 如下所示 : File.WriteMap(File.DirRootExternal, "mapitems.txt", items) 方法的第 1 個參數是 Android 儲存位置的目錄, 第 2 個參數是檔案名稱, 可以將最後 1 個參數的 Map 物件 items 寫入檔案 B4A 專案 :Lesson\ 讀寫 Map 物件 \ 我的最愛.b4a ReadMap() 方法讀取 Map 物件 讀取檔案是使用 ReadMap() 方法, 如下所示 : items = File.ReadMap(File.DirRootExternal, "mapitems.txt") 程式碼可以取得檔案內容 Map 物件 items, 方法的第 1 個參數是 Android 儲存位置的目錄, 第 2 個參數是檔案名稱 中壢高商 65

68 B4A 專案 :Lesson\ 讀寫 Map 物件 \ 我的最愛.b4a 將讀取的 Map 物件建立 ListView 元件項目 在讀取 Map 物件後, 就可以將 Map 物件元素新增成為 ListView 元件的項目, 如下所示 : ListView1.Clear() For i = 0 To items.size - 1 ListView1.AddSingleLine2(items.GetKeyAt(i), items.getvalueat(i)) Next 程式碼呼叫 Clear() 方法清除項目資料後, 使用 For/Next 迴圈走訪 Map 物件的每一個元素, 和呼叫 AddSingleLine2() 方法加入成為 ListView 元件的清單項目, 包含項目名稱和值 Basic4android 的線上教學資源 中壢高商 66

69 意圖與意圖篩選 Android 應用程式送出意圖的訊息需要經過 Android 作業系統來判斷接收者是誰, 它是使用意圖篩選 ( Intent Filters) 找出有能力處理的活動或內建應用程式, 然後才將訊息送給接收者, 如右圖所示 : 意圖 (Intents) 是一個啟動其他 Android 活動 服務和廣播接收器的系統訊息, 可以告訴 Android 作業系統我想作什麼? 專案 :Lesson6\ 建立多活動 \ 建立多活動 App.b4a 建立多活動 App- 步驟一 : 建立 Main 主活動 建立多活動 App 的第一步是建立 B4A 專案和輸入程式碼, 如下所示 : Sub Globals Dim Button1 As Button End Sub Sub Activity_Create(FirstTime As Boolean) Activity.Title = " 建立多活動 App" End Sub Sub Button1_Click StartActivity("Second") End Sub 啟動 Second 活動 中壢高商 67

70 專案 :Lesson6\ 建立多活動 \ 建立多活動 App.b4a 建立多活動 App- 步驟二 : 新增 Second 活動模組 B4A 專案擁有 2 個活動模組, 我們需要新增名為 Second 的第 2 個活動模組, 如下所示 : Sub Globals Dim Button1 As Button End Sub Sub Activity_Create(FirstTime As Boolean) Activity.Title = " 第二個活動 " End Sub Sub Button1_Click 啟動 Main 活動 StartActivity("Main") End Sub 專案 :Lesson6\ 建立多活動 \ 建立多活動 App.b4a 建立多活動 App- 步驟三 : 編譯和執行多活動 App 現在, 我們已經完成 2 個活動的 Android App, 其編譯和執行結果如下圖所示 : 中壢高商 68

71 專案 :Lesson6\ 傳遞資料至其他活動 \ 我的最愛.b4a 傳遞資料至其他活動 -B4A 的作法 程式是使用 ListView 元件顯示網站名稱清單, 點選項目, 就可以啟動第 2 個活動, 和在 WebView 元件顯示選取網站的首頁, 如下圖所示 : 傳遞 URL 網址 專案 :Lesson6\ 傳遞資料至其他活動 \ 我的最愛.b4a 傳遞資料至其他活動 -Process_Globals 程序 資料是從 Main 傳遞至 WebView 活動, 所以是在 Main 活動模組宣告傳遞資料的變數, 如下所示 : Sub Process_Globals Dim URL As String End Sub 程序宣告名為 URL 的行程變數 在第 2 個 WebVew 活動可以使用活動名稱加上變數名稱 Main.URL 取得 Main 活動的行程變數值, 如下所示 : Dim URL As String URL = Main.URL 中壢高商 69

72 意圖的動作類型 ( 準備作什麼 ) B4A 在呼叫 Initialize() 方法初始 Intent 意圖物件時, 可以在第 1 個參數指定使用的動作類型, 第 2 個參數是 URI 活動常用的動作類型說明, 如下表所示 : 動作類型 ACTION_VIEW ACTION_EDIT ACTION_CALL ACTION_SEND ACTION_PICK ACTION_APPWIDGET_UPDATE ACTION_MAIN 說明 顯示資料給使用者檢視 顯示資料給使用者編輯 使用自動撥號打電話 寄送簡訊或電子郵件 從資料來源選取一個項目資料 更新應用程式小工具 (App Widget), 詳見第 13-3 節的說明 啟動如同是程式進入點的主程式 意圖的 URI( 操作所需的資料 ) 萬用資源識別 URI 是用來定位 Android 系統的資源, 幫助 Intent 意圖物件的動作可以取得或找到操作的資料 Android 常用的 URI 說明, 如下所示 : URL 網址 :URI 可以直接使用 URL 網址, 如下所示 : 地圖位置 :GPS 定位的座標值 (GeoPoint 格式 ), 如下所示 : geo: , 電話號碼 : 指定撥打的電話號碼, 如下所示 : tel: 寄送簡訊 : 寄送簡訊給指定的電話號碼, 如下所示 : sms: 中壢高商 70

73 專案 :Lesson6\ 使用意圖啟動程式 \Android 工具箱.b4a 使用隱含意圖啟動瀏覽器 在活動啟動內建瀏覽器是建立 ACTION_VIEW 動作, 和 URI 為 URL 網址的 Intent 物件, 如下所示 : Dim i As Intent i.initialize(i.action_view, " StartActivity(i) 程式碼宣告 Intent 物件變數後, 呼叫 Initialize() 方法初始 Intent 物件, 第 1 個參數是動作, 第 2 個參數是 URI 字串, 最後呼叫 StartActivity() 方法啟動活動, 參數是 Intent 物件 專案 :Lesson6\ 使用意圖啟動程式 \Android 工具箱.b4a 使用隱含意圖啟動打電話程式 在活動啟動內建撥號程式是使用 ACTION_VIEW 動作,URI 為電話號碼, 如下所示 : Dim i As Intent i.initialize(i.action_view, "tel: ") StartActivity(i) 中壢高商 71

74 專案 :Lesson6\ 使用意圖啟動程式 \Android 工具箱.b4a 使用隱含意圖啟動程式傳送簡訊 在活動可以啟動內建簡訊工具來傳送簡訊, 它是使用 ACTION_VIEW 動作,URI 為簡訊收件者的電話號碼, 如下所示 : Dim i As Intent i.initialize(i.action_view, "sms: ") i.putextra("sms_body", " 這是一封測試簡訊 ") StartActivity(i) 程式碼呼叫 Intent 物件 PutExtra() 方法來附加資料, 第 1 個參數是資料名稱, 第 2 個參數是資料值, 以此例是指定簡訊內容 專案 :Lesson6\ 使用意圖傳遞資料 \BMI 計算機.b4a 使用明確意圖啟動 App 的其他活動 明確意圖需要在 StartActivity() 方法參數的 Intent 意圖物件指明目標活動的活動類別, 或進一步指明元件名稱來啟動指定的 Android App, 而不是讓 Android 作業系統依據動作類別和 URI 來選擇適合的 Android App 使用明確意圖啟動其他活動需要使用 SetComponent() 方法指定目標的元件名稱, 如下所示 : Dim i As Intent i.initialize("", "") i.setcomponent("com.android.calculator2/.calcula tor") StartActivity(i) 中壢高商 72

75 專案 :Lesson6\ 使用意圖啟動程式 \Android 工具箱.b4a 使用明確意圖啟動 Google 地圖 在活動啟動內建 Google 地圖是使用 ACTION_VIEW 動作,URI 為 GPS 座標值, 不過稍有不同, 如下所示 : Dim i As Intent Dim lat, lon As String lat = " " lon = " " i.initialize(i.action_view, "geo:" & lat & "," & lon & "?q=" & lat & "," & lon) i.setcomponent("googlemaps") StartActivity(i) URI 字串的最後重複加上 q 參數的 GPS 座標值, 以便在 Google 地圖加上標記, 呼叫 SetComponent() 方法指明元件名稱是 Google 地圖 狀態列通知的基礎 狀態列 (Status Bar) 是行動裝置最上方的一條橫向長條區域, 平板電腦 Android 3.x 是位在最下方,Android 4.x 版作業系統的狀態列是位在最上方 通知服務 (Notification Service) 是一種系統服務, 可以在狀態列顯示可向下捲動的通知訊息, 例如 : 未接來電, 如右圖所示 : 中壢高商 73

76 專案 :Lesson6\ 狀態列通知 \BMI 計算機.b4a 建立 Notification 物件的狀態列通知 Notification 物件建立狀態列通知十分簡單, 不過, 請注意! 我們一定需要指定圖示和訊息內容, 才能正確顯示通知 首先宣告 Notification 物件變數, 如下所示 : Dim n As Notification n.initialize() 程式碼呼叫 Initialize() 方法初始 Notification 物件 專案 :Lesson6\ 狀態列通知 \BMI 計算機.b4a 指定狀態列通知的圖示 然後使用 Icon 屬性指定顯示的圖示, 如下所示 : n.icon = "w1" Icon 屬性值是圖示檔名稱, 不含副檔名且區分英文字母大小寫, 我們需要自行將圖示檔複製到 B4A 專案的 \Objects\res\drawable 目錄, 和將屬性值改為唯讀, 否則當編譯時,B4A 會自動刪除圖示檔, 我們也可以指定成 icon, 即 App 本身的應用程式圖示, 如下所示 : n.icon = "icon" 中壢高商 74

77 專案 :Lesson6\ 狀態列通知 \BMI 計算機.b4a 指定狀態列通知的通知訊息 接著指定通知訊息, 和點選通知開啟的活動, 如下所示 : n.setinfo("bmi 計算機 ", "BMI 值太高, 體重稍重...", BMI) SetInfo() 方法的第 1 個參數是標題文字, 第 2 個參數是訊息內容, 最後 1 個參數是點選通知開啟的活動物件名稱, 如果程式碼位在 Main 模組且點選開啟的也是 Main 活動, 最後 1 個參數值就是空字串 "" 專案 :Lesson6\ 狀態列通知 \BMI 計算機.b4a 顯示狀態列通知 現在, 我們已經指定圖示和通知訊息, 最後就可以呼叫 Notify() 方法顯示通知, 如下所示 : n.notify(1) 方法的參數是整數的通知編號, 此編號就是用來在之後更新或取消通知 中壢高商 75

78 專案 :Lesson6\ 狀態列通知 \BMI 計算機.b4a 更新狀態列通知 對於已經顯示的通知, 我們可以更新圖示和通知訊息文字後, 再送出一次, 如下所示 : n.icon = "w2" 更改圖示 n.setinfo("bmi 計算機 ", "BMI 值太高, 體重過重...", BMI) n.notify(1) 通知更新圖示和訊息文字後, 因為 Notify() 方法的參數值是同一個通知編號, 換句話說, 就是顯示更新的狀態列通知 專案 :Lesson6\ 狀態列通知 \BMI 計算機.b4a 取消狀態列通知 當點選狀態列通知開啟目標活動時, 我們可以在此活動的 Activity_Resume 程序取消此通知, 如下所示 : Sub Activity_Resume Dim n As Notification n.initialize() n.cancel(1) 取消通知 End Sub 程序建立 Notification 物件後, 呼叫 Cancel() 方法取消通知, 參數是通知編號 中壢高商 76

79 專案 :Lesson6\ 從狀態列通知傳遞資料 \ 四則計算機.b4a 從狀態列通知傳遞資料至活動 - 傳遞字串資料 在建立狀態列通知的訊息內容時, 可以額外傳遞一個字串至啟動活動, 使用的是 SetInfo2() 方法, 如下所示 : Dim n As Notification n.initialize() n.icon = "icon" n.autocancel = True 自動取消通知 傳遞的字串 n.setinfo2(" 四則計算機 ", " 除以 0 的錯誤...", " 第 2 個運算元 不能為 0", Error) n.notify(1) 圖示是應用程式圖示, 指定 AutoCancel 屬性值為 True, 表 示點選通知就自動取消通知, 在 SetInfo2() 方法的第 3 個參 數是傳遞字串, 可以傳遞至最後一個參數的 Error 活動 是否有參數 專案 :Lesson6\ 從狀態列通知傳遞資料 \ 四則計算機.b4a 從狀態列通知傳遞資料至活動 - 取得傳遞字串 在 Activity_Resume 程序取得狀態列通知傳遞字串, 如下 所示 : Sub Activity_Resume Dim i As Intent i = Activity.GetStartingIntent() If i.hasextra("notification_tag") Then 取得啟動活動的 Intent 物件 lbloutput.text = i.getextra("notification_tag") End If End Sub 呼叫 Activity.GetStartingIntent() 方法取得啟動此活動的 Intent 物件,If 條件呼叫 HasExtra() 方法, 參數是資料名稱 "Notification_Tag", 如果存在, 就呼叫 GetExtra() 方法取出傳遞字串 中壢高商 77

80 服務 服務是在背景執行的行程, 可以執行和活動一樣的工作, 只是沒有使用介面 例如 : 在播放背景音樂時, 之所以不會打斷我們發送簡訊或收發電子郵件, 因為它是在背景執行的服務, 才能讓音樂播放不中斷 服務的生命周期 服務的生命周期幾乎不會被目前存在的活動影響, 因為它是在背景執行工作, 所以沒有任何活動的使用介面, 也不能使用對話方塊 (Toast 彈跳訊息框除外 ), 通常都是使用狀態列通知, 作為與使用者互動的管道 服務不會暫停和重新啟動, 當使用者旋轉螢幕, 也不會重新建立服務 ( 只會重新建立活動 ), 因此, 在活動模組撰寫的程式碼, 一旦活動進入背景, 程式也隨之暫停, 但是, 服務就可以持續執行, 換句話說, 對於哪些沒有使用介面的任務與工作, 使用服務來實作比起活動還來的簡單 中壢高商 78

81 服務模組的範本程式碼 服務模組範本程式碼的程序是服務的生命周期, 它是作業系統依序呼叫的一些程序, 如下所示 : Sub Process_Globals End Sub Sub Service_Create End Sub Sub Service_Start (StartingIntent As Intent) End Sub Sub Service_Destroy End Sub 服務模組的程序說明 -1 Process_Globals 程序 : 在此程序宣告服務模組的全域變數 ( 即行程變數 ), 服務模組沒有 Globals 程序, 因為服務不支援活動物件, 我們在服務模組宣告的全域變數, 相當於是在活動模組宣告行程變數, 可以讓其他模組存取 Service_Create 程序 : 當服務第 1 次啟動時就會呼叫此程序, 我們可以在此程序初始行程變數, 當服務啟動後, 它會一直存在直到活動模組呼叫 StopService() 方法停止服務, 或整個行程被刪除 中壢高商 79

82 服務模組的程序說明 -2 Service_Start 程序 : 當每一次呼叫 StartService() 或 StartServiceAt() 方法時就會呼叫此程序, 將 App 的行程移至前景狀態, 作業系統不會刪除此行程, 直到程序結束執行為止 如果是排程工作, 定時在間隔時間執行的工作, 請在此程序呼叫 StartServiceAt() 方法建立排程執行的服務 Service_Destroy 程序 : 當在活動呼叫 StopService() 方法時, 就是呼叫此程序來終止服務且停止服務的執行, 我們需要再次呼叫 StartService() 方法來啟動服務, 然後依序呼叫 Service_Create() 和 Service_Start() 方法來執行服務 專案 :Lesson6\ 服務模組 \ 計數器服務.b4a Service_Start() 程序 Service_Start() 程序使用 StartServiceAt() 方法排程自動在下一秒啟動服務, 方法第 1 個參數是服務模組名稱, 空字串是目前服務, 第 2 個參數指定間隔時間是目前時間的下一秒, 最後 1 個參數是當裝置如果在睡眠時是否啟動服務,True 為是 ;False 要等到裝置恢復才啟動, 如下 : Sub Service_Start(StartingIntent As Intent) Counter = Counter + 1 排程啟動服務 If isrun Then StartServiceAt("", DateTime.Now + DateTime.TicksPerSecond, True) End If End Sub 中壢高商 80

83 專案 :Lesson6\ 服務模組 \ 計數器服務.b4a 在服務模組 Process_Globals 使用行程變數 Counter 和 IsRun 變數都是全域的行程變數, 在活動模組是使用 Timer 物件來定時取得 Counter 變數值,IsRun 變數是用來控制服務是否執行 Sub Process_Globals Dim Counter As Int = 0 行程變數 Dim isrun As Boolean End Sub 專案 :Lesson6\ 服務模組 \ 計數器服務.b4a Service_Create() 程序 在 TimeService 服務模組的 Service_Create() 程序建立狀態列通知, 可以讓使用者透過通知訊息來開啟可以關閉服務的活動, 如下所示 : Sub Service_Create Dim n As Notification n.initialize() n.icon = "icon" n.autocancel = True 指定圖示 建立與初始 Nofification 物件 n.setinfo(" 計數器服務 ", " 停止計數器服務...", Main) n.notify(1) End Sub 指定訊息 中壢高商 81

84 在活動模組 Main 建立 Timer 物件 Timer 物件可以在指定間隔時間產生 Tick 事件, 我們可以使用 Timer 物件取代很長次數的迴圈和實作動畫效果 Sub Process_Globals Dim Timer1 As Timer Timer1.Initialize("Timer", 1000) End Sub... Sub Timer_Tick lbloutput.text = TimeService.Counter End Sub 建立與初始 Timer 物件 顯示計數 在活動模組 Main 啟動和停止服務 Sub Button1_Click Timer1.Enabled = True TimeService.isRun = True StartService(TimeService) End Sub 啟動計時器物件 啟動服務 Sub Button2_Click Timer1.Enabled = False 取消排程啟動服務 TimeService.isRun = False CancelScheduledService(TimeService) StopService(TimeService) End Sub 停止服務 中壢高商 82

85

86

87

CHAPTER VC#

CHAPTER VC# 1. 2. 3. 4. CHAPTER 2-1 2-2 2-3 2-4 VC# 2-5 2-6 2-7 2-8 Visual C# 2008 2-1 Visual C# 0~100 (-32768~+32767) 2 4 VC# (Overflow) 2-1 2-2 2-1 2-1.1 2-1 1 10 10!(1 10) 2-3 Visual C# 2008 10! 32767 short( )

More information

Microsoft PowerPoint - ASP_NET_03

Microsoft PowerPoint - ASP_NET_03 第 3 章 Visual Basic 2010 程式語言 大綱 Visual Basic 2010 的基礎 Visual Basic 的基本撰寫規格 Visual Basic 的變數與資料型別 Visual Basic 的運算子 Visual Basic 的流程控制 Visual Basic 的程序與函數 2 Visual Basic 2010 的基礎 源於 Bill Gates 對於 BASIC

More information

Excel VBA Excel Visual Basic for Application

Excel VBA  Excel Visual Basic for Application Excel VBA Jun5,00 Sub 分頁 () Dim i As Integer Dim Cname As String Dim Code As Variant Set score=thisworkbook.sheets("sheet") Code=Array(" 專北一 "," 專北二 "," 專北三 "," 專桃園 "," 專桃竹 "," 專中苗 ", " 專台中 "," 專台南 ","

More information

投影片 1

投影片 1 資料庫管理程式 ( 補充教材 -Part2) 使用 ADO.NET 連結資料庫 ( 自行撰寫程式碼 以實現新增 刪除 修改等功能 ) Private Sub InsertButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertButton.Click ' 宣告相關的 Connection

More information

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc) 作者 Amber 版本 1.0.0 日期 2012/04/25 頁數 1/7 如何使用 LED 燈顯示狀態? 適用於 : 平台 作業系統版本 XPAC utility 版本 XP-8000 系列 N/A N/A XP-8000-Atom 系列 WES2009 所有版本 N/A: Not applicable to this platform and OS. 注意! 欲變更系統的任何設定之前, 請先關閉

More information

HTML網頁基礎語言

HTML網頁基礎語言 第 3 章 Visual Basic 2012 程式語言 http://www1.chihlee.edu.tw/teachers/chienhua/ 第 3 章 Visual Basic 2012 程式語言 3-0 ASP.NET 網頁程式碼模式 3-1 Visual Basic 的基本撰寫規格 3-2 變數與資料型別 3-3 運算子 3-4 流程控制 3-5 陣列 3-6 程序與函數 Note:

More information

untitled

untitled JavaEE+Android - 6 1.5-2 JavaEE web MIS OA ERP BOSS Android Android Google Map office HTML CSS,java Android + SQL Sever JavaWeb JavaScript/AJAX jquery Java Oracle SSH SSH EJB+JBOSS Android + 1. 2. IDE

More information

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc

X6-04_How_do_I_write_a_com_port_communicate_program_of_XPAC_tc Author WeiKai Version 1.0.0 Date 2013/4/14 Page 1/11 我如何在 XPAC 上建立一個 COM port 通訊程式 Applies to: Platform OS version XPAC utility version XPAC series All versions (WinCE6) All versions XPAC SDK 提供 XPAC 結合

More information

Microsoft PowerPoint - C_Structure.ppt

Microsoft PowerPoint - C_Structure.ppt 結構與其他資料型態 Janet Huang 5-1 結構的宣告 struct 結構名稱 struct 結構名稱變數 1, 變數 2,, 變數 m; struct 結構名稱 變數 1, 變數 2,, 變數 m; student; student; 5-2 1 結構變數初值的設定 struct 結構名稱 struct 結構名稱變數 = 初值 1, 初值 2,, 初值 n student="janet","1350901",100,95

More information

Microsoft PowerPoint - VB14.ppt

Microsoft PowerPoint - VB14.ppt VB 列表盒 LISTBOX 應用 資科系 林偉川 執行畫面 1 2 1 重要屬性 LISTBOX 物件 (VB6) 新增至 LISTBOX 物件中 ADDITEM 自 LISTBOX 物件中刪除選取物件 REMOVEITEM 自 LISTBOX 物件中取出選取物件 ListIndex 顯示 LISTBOX 物件中紀錄個數 Listcount 3 LISTBOX 物件 (VB.NET) 重要屬性 新增至

More information

Microsoft Word - 2.doc

Microsoft Word - 2.doc 建立 Android App [ 兒童數學訓練 (I)] 2-1 使用 B4A 開發 Android App 2-2 建立第一個 Android App 2-3 建立第二個 Android App 2-4 B4A 的程式與專案結構 2-1 使用 B4A 開發 Android App 使用 B4A 開發 Android App 的方式和使用 Visual Studio 建立 Windows 應用程式的步驟十分相似,

More information

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

The golden pins of the PCI card can be oxidized after months or years Q. 如何在 LabWindows/CVI 編譯 DAQ Card 程式? A: 請參考至下列步驟 : 步驟 1: 安裝驅動程式 1. 安裝 UniDAQ 驅動程式 UniDAQ 驅動程式下載位置 : CD:\NAPDOS\PCI\UniDAQ\DLL\Driver\ ftp://ftp.icpdas.com/pub/cd/iocard/pci/napdos/pci/unidaq/dll/driver/

More information

iziggi

iziggi iziggi 1 1 iziggi-hd 2 iziggi-hd 4 IPEVO iziggi-hd 6 iziggi-hd 8 iziggi-hd 9 Whiteboard App USB 10 iziggi-hd 11 iziggi-hd Live View WiFi 11 12 LED 12 iziggi-hd 13 Apple TV AirPlay 13 14 15 iziggi-hd *

More information

VB程序设计教程

VB程序设计教程 高 等 学 校 教 材 Visual Basic 程 序 设 计 教 程 魏 东 平 郑 立 垠 梁 玉 环 石 油 大 学 出 版 社 内 容 提 要 本 书 是 按 高 等 学 校 计 算 机 程 序 设 计 课 程 教 学 大 纲 编 写 的 大 学 教 材, 主 要 包 括 VB 基 础 知 识 常 用 程 序 结 构 和 算 法 Windows 用 户 界 面 设 计 基 础 文 件 处

More information

四川省普通高等学校

四川省普通高等学校 四 川 省 普 通 高 等 学 校 计 算 机 应 用 知 识 和 能 力 等 级 考 试 考 试 大 纲 (2013 年 试 行 版 ) 四 川 省 教 育 厅 计 算 机 等 级 考 试 中 心 2013 年 1 月 目 录 一 级 考 试 大 纲 1 二 级 考 试 大 纲 6 程 序 设 计 公 共 基 础 知 识 6 BASIC 语 言 程 序 设 计 (Visual Basic) 9

More information

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344> 1. 請 問 誰 提 出 積 體 電 路 (IC) 上 可 容 納 的 電 晶 體 數 目, 約 每 隔 24 個 月 (1975 年 更 改 為 18 個 月 ) 便 會 增 加 一 倍, 效 能 也 將 提 升 一 倍, 也 揭 示 了 資 訊 科 技 進 步 的 速 度? (A) 英 特 爾 (Intel) 公 司 創 始 人 戈 登. 摩 爾 (Gordon Moore) (B) 微 軟 (Microsoft)

More information

IsPostBack 2

IsPostBack 2 5 IsPostBack 2 TextBox 3 TextBox TextBox 4 TextBox TextBox 1 2 5 TextBox Columns MaxLength ReadOnly Rows Text TextMode TextMode MultiLine TextMode MultiLine True False TextMode MultiLine Password MulitLine

More information

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

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e Android Studio Debugging 本篇教學除了最基本的中斷點教學之外, 還有條件式中斷的教學 條件式中斷是進階的除錯技巧, 在某些特定情況中, 我們有一個函數可能會被呼叫數次, 但是我們只希望在某種條件成立時才進行中斷, 進而觀察變數的狀態 而條件式中斷這項技巧正是符合這項需求 本教學分兩部分 單步除錯 (Page2~11, 共 10) 條件式中斷點 (Page12~17, 共 6)

More information

Microsoft PowerPoint - vb.net2.ppt

Microsoft PowerPoint - vb.net2.ppt 建立 VB.NET 應用程式 資科系 林偉川 1 使用 VB.NET 開發應用程式 VB.NET 應用程式開發是使用 Visual Studio.NET 整合開發環境, 其基本的步驟如下所示 : Step 1: 新增專案 Step 2: 建立表單介面 Step 3: 設定控制項屬性 Step 4: 撰寫程式碼 Step 5: 編譯與執行 2 1 第一個 VB.NET 主控台應用程式 主控台應用程式是早期

More information

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

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

More information

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

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1 0 0 = 1 0 = 0 1 = 0 1 1 = 1 1 = 0 0 = 1 : = {0, 1} : 3 (,, ) = + (,, ) = + + (, ) = + (,,, ) = ( + )( + ) + ( + )( + ) + = + = = + + = + = ( + ) + = + ( + ) () = () ( + ) = + + = ( + )( + ) + = = + 0

More information

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

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4 JAVA Extension 0..\Example\Ch0\ \ T.html..\Example\Ch0\ \ T.txt T.txt..\Example\Ch0\ \ T_Ok.html 提示 :. Marquee Marquee Font Color #FFFFFF BG Color #867bf Width 90 Height 50. T.txt Ctrl+C your scrolling

More information

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM CHAPTER 6 SQL SQL SQL 6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM 3. 1986 10 ANSI SQL ANSI X3. 135-1986

More information

1-1

1-1 P R E F A C E 序 Visual Basic 語言是目前國內使用者最多的程式語言之一, 對於熟悉 Visual Basic 語言的使用者來說,Android App 開發雖然是當紅的軟體開發領域, 但是, 苦於不熟悉 Java 語法和物件導向程式設計, 根本無法馬上入門, 現在, 你不用學習 Java 語言的不同語法, 直接使用現有 Visual Basic 程式設計經驗, 一樣可以輕鬆開發

More information

<4D F736F F D2028B0D3BADEB873B971A46CB3F DB8F3B E646F7773A8EC416E64726F6964AABAB57BA6A1B35DAD702D423441A4B6B2D0>

<4D F736F F D2028B0D3BADEB873B971A46CB3F DB8F3B E646F7773A8EC416E64726F6964AABAB57BA6A1B35DAD702D423441A4B6B2D0> 跨越 Windows 到 Android 的程式設計 Basic4Android 介紹國立臺南高商林文雄 一 前言程式設計課程是目前高職商業學校資料處理科最主要的專業課程之一, 也是許多學校規劃特色課程的重要方向, 而 Visual Basic( 以下簡稱 VB) 語言則是主要的程式設計語言, 是學生在高職階段頗具挑戰的課程 本校在規劃特色課程中, 為因應現今 3C 科技產品的流行趨勢與提升學生的學習興趣,

More information

46 2011 11 467 數位遊戲式學習系統 7 2011 11 467 47 3 DBGameSys 48 2011 11 467 正規化資料模組 如何配置並儲存電子化資料 以 便減少資料被重覆儲存的程序 DBGameSys的主要功能模組包 學習者 審核評分模組 含 正規化資料模組 審核評分 模組 高分列表模組3大區塊 系統資料庫 在正規化資料模組的執行 高分列表模組 過程中 先要求學習者瀏覽遊戲

More information

Microsoft Word - ACG chapter00c-3ed.docx

Microsoft Word - ACG chapter00c-3ed.docx Python 好好玩, 趣學電玩遊戲程式設計 Python Python BASIC Java JavaScript PHP C++ BASIC Python Python Python Xbox PlayStation Nintendo - 2 - 簡介 : 互動式 Python Shell : 編寫程式 Python File editor : 猜數字 : 腦筋急轉彎 : 龍域 ( ) : 使用

More information

<4D F736F F D DA5BFA6A1C476C1C92DBEC7ACECB8D5A8F728B57BB35D292E646F63>

<4D F736F F D DA5BFA6A1C476C1C92DBEC7ACECB8D5A8F728B57BB35D292E646F63> 全國高級中等學校 106 學年度商業類科學生技藝競賽 程式設計 職種 學科 試卷 選手證號碼 ( 崗位編號 ): 姓名 : 注意事項 : 請將答案劃記於答案卡, 未依規定劃記者不予計分 試題說明 :( 選擇題共 25 題每題 4 分, 答錯不倒扣, 共 100 分 ) ( )1. 執行以下 Visual Basic 程式片段, 其結果為何?(A) 15 (B) 12 (C) 7 (D) 3 Dim

More information

Autodesk Product Design Suite Standard 系統統需求 典型使用用者和工作流程 Autodesk Product Design Suite Standard 版本為為負責建立非凡凡產品的設計師師和工程師, 提供基本概念設計計和製圖工具, 以取得令人驚驚嘆

Autodesk Product Design Suite Standard 系統統需求 典型使用用者和工作流程 Autodesk Product Design Suite Standard 版本為為負責建立非凡凡產品的設計師師和工程師, 提供基本概念設計計和製圖工具, 以取得令人驚驚嘆 Autodesk Product Design Suite Standard 20122 系統統需求 典型使用用者和工作流程 Autodesk Product Design Suite Standard 版本為為負責建立非凡凡產品的設計師師和工程師, 提供基本概念設計計和製圖工具, 以取得令人驚驚嘆的產品設計計 Autodesk Product Design Suite Standard 版本中中包括以下軟體體產品

More information

untitled

untitled 說 參 例 邏 邏 1. 說 2. 數 數 3. 8 4. 理念 李 龍老 立 1. 理 料 2. 理 料 3. 數 料 4. 流 邏 念 5. 良 6. 讀 行 行 7. 行 例 來 邏 1. 說 說 識 量 2. 說 理 類 3. 數 數 念 4. 令 5. 良 6. 流 邏 念 7. 說 邏 理 力 1. 2. 3. 4. 5. 列 念 1 參 1. ( Visual Basic 例 ) (1)

More information

建立Android新專案

建立Android新專案 經濟部工業局 Android 智慧型手機程式設計實務應用班 Android WebService 建國科技大學資管系 饒瑞佶 2012/4 WebService 需要 ksoap2-android-assembly-2.5.2-jar-withdependencies.jar 或 ksoap2-android-assembly-2.5.2-jar-withdependencies_timeout1.jar

More information

麻 省 理 工 學 院 是 在 西 元 2013 年 12 月 3 日 推 出 MIT App Inventor 2 網 站, 提 供 免 費 的 雲 端 服 務, 使 用 者 可 以 透 過 瀏 覽 器 來 開 發 Android 裝 置 應 用 程 式, 該 網 站 的 網 址 為 : http

麻 省 理 工 學 院 是 在 西 元 2013 年 12 月 3 日 推 出 MIT App Inventor 2 網 站, 提 供 免 費 的 雲 端 服 務, 使 用 者 可 以 透 過 瀏 覽 器 來 開 發 Android 裝 置 應 用 程 式, 該 網 站 的 網 址 為 : http 資 訊 學 科 中 心 6 月 份 電 子 報 用 MIT App Inventor2 程 式 拼 圖 來 開 發 Android 裝 置 應 用 程 式 李 啟 龍 學 習 Android 裝 置 程 式 設 計, 可 以 不 必 學 習 較 為 艱 澀 的 Java 語 法, 只 要 使 用 拼 圖 模 式 來 組 合 程 式, 就 可 以 完 成 Android 裝 置 的 應 用 程 式 MIT

More information

Chapter 16 集合

Chapter 16 集合 Chapter 16 集合 20 ArrayList StringCollection 16 本章學習目標 : ArrayList ArrayList Array StringCollection 16-1 21 10-3-8 System.Array Clear Clear 16-1 Clear System.Array Microsoft System.Collection IList 542

More information

Microsoft Word - 小心翼翼的二十一點N.doc

Microsoft Word - 小心翼翼的二十一點N.doc 投 稿 類 別 : 資 訊 類 篇 名 : 小 心 翼 翼 的 二 十 一 點 作 者 : 陳 鈺 文 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 李 伯 謙 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 胡 家 媛 國 立 瑞 芳 高 級 工 業 職 業 學 校 資 訊 二 指 導 老 師 : 周 曉 玲 老 師 陳 思 亮 主 任 壹 前 言 一 研 究 動 機 平

More information

封面-12

封面-12 第十二章 701Client TECHNOLOGY CO.,LTD. 701Client 701Server 701Client "701Client", 12-1 :supervisor :supervisor : 1. : 00~99 100 2. : 00~63 ( 63 / / ) 3. : 18 9 4. : 18 9 5. 12-2 TECHNOLOGY CO.,LTD. 701Client

More information

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操

本 课 程 作 为 非 计 算 机 专 业 本 科 通 识 课 程, 是 一 门 理 论 和 实 践 紧 密 结 合 的 实 用 课 程, 内 容 包 括 计 算 机 基 础 部 分 和 程 序 设 计 部 分 计 算 机 基 础 部 分 涵 盖 计 算 机 软 硬 件 组 成 数 制 表 示 操 计 算 机 基 础 部 程 序 设 计 类 课 程 介 绍 1. Java 语 言 程 序 设 计 Java 简 介 Java 是 一 种 开 放 的 可 以 撰 写 跨 平 台 应 用 程 序 的 面 向 对 象 的 程 序 设 计 语 言 Java 技 术 具 有 卓 越 的 通 用 性 高 效 性 平 台 移 植 性 和 安 全 性, 广 泛 应 用 于 PC 数 据 中 心 科 学 超 级

More information

第三篇 第 10 章 - 管理者登入第 11 章 - 更改網路商店 Logo 第 12 章 - 系統設定第 13 章 - 商品上架第 14 章 - 付款方式設定第 15 章 - 出貨方式設定第 16 章 - 特價商品 oscommerce 103

第三篇 第 10 章 - 管理者登入第 11 章 - 更改網路商店 Logo 第 12 章 - 系統設定第 13 章 - 商品上架第 14 章 - 付款方式設定第 15 章 - 出貨方式設定第 16 章 - 特價商品 oscommerce 103 第三篇 第 10 章 - 管理者登入第 11 章 - 更改網路商店 Logo 第 12 章 - 系統設定第 13 章 - 商品上架第 14 章 - 付款方式設定第 15 章 - 出貨方式設定第 16 章 - 特價商品 103 電子商務網站經營與管理 10-11 - Logo 12-13 - 14-15 - 16 - 一 情境描述 - 店主的心聲 1. 2. / 104 3. 第三篇網路商店新店開幕

More information

untitled

untitled 1 .NET 利 [] [] 來 說 切 切 理 [] [ ] 來 說 拉 類 類 [] [ ] 列 連 Web 行流 來 了 不 不 不 流 立 行 Page 類 Load 理 Response 類 Write 料 Redirect URL Response.Write("!! ives!!"); Response.Redirect("WebForm2.aspx"); (1) (2) Web Form

More information

<img>

<img> 04 圖片 4-1 4-2 4-3 4-4 網頁程式設計 4-1 網頁多媒體 Flash Java Applets HTML 8 4-1-1 圖片 JPEG Joint Photographic Experts Group 非失真模式 (lossless) 基本模式 (baseline standard) 1 2 12 JPEG 6 JPEG.jpg.jpe.jpeg GIF (graphic

More information

投稿類別:資訊類

投稿類別:資訊類 投稿類別 : 資訊類 篇名 : 從 VB.Net 學 C# 作者 : 陳諭瑩 高雄市立高雄高級工業職業學校 資訊科高三乙班王子喬 高雄市立高雄高級工業職業學校 資訊科高三乙班李宗恩 高雄市立高雄高級工業職業學校 資訊科高三乙班 指導老師 : 莊利吉老師 壹 前言 一 研究動機 在高職裡 VB.Net 是課程標準, 但由於現在職場上大部分都是使用 C#, 所以我們用 VB.Net 的基礎學 C#, 再利用高職所學到的

More information

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

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00 Excel - - Excel - -4-5 840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00 ( 0 ) 智慧標籤 相關說明提示 -5 -- Excel 4 5 6 7 8 + - * / % ^ = < >= & 9 0 (:) (,) ( ) Chapter - :,

More information

CHAPTER 1

CHAPTER 1 CHAPTER 1 1-1 System Development Life Cycle; SDLC SDLC Waterfall Model Shelly 1995 1. Preliminary Investigation 2. System Analysis 3. System Design 4. System Development 5. System Implementation and Evaluation

More information

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

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 Chapter 02 變數與運算式 2.1 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 type 2.2.4 2.3 2.3.1 print 2.3.2 input 2.4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 + 2.4.6 Python Python 2.1 2.1.1 a p p l e b e a r c 65438790

More information

2 第 章 绪 论 Internet 2.0 使 得 消 费 型 电 子 产 品 用 户 可 以 通 过 多 种 不 同 的 数 据 网 络 访 问 互 联 网 内 容 用 户 可 以 使 用 便 携 式 消 费 型 电 子 设 备, 如 智 能 手 机 触 屏 平 板 电 脑 电 子 书, 甚 至

2 第 章 绪 论 Internet 2.0 使 得 消 费 型 电 子 产 品 用 户 可 以 通 过 多 种 不 同 的 数 据 网 络 访 问 互 联 网 内 容 用 户 可 以 使 用 便 携 式 消 费 型 电 子 设 备, 如 智 能 手 机 触 屏 平 板 电 脑 电 子 书, 甚 至 . Android 是 什 么 第 章 绪 论 2 3 本 章 将 主 要 介 绍 Android 操 作 系 统, 这 些 背 景 知 识 可 以 帮 你 更 好 地 理 解 本 书 的 内 容 你 将 了 解 到, 这 一 平 台 在 如 今 以 便 携 式 消 费 型 电 子 设 备 为 基 础 的 Internet 2.0 环 境 下 是 如 何 大 显 身 手 的 这 里 所 说 的 Internet

More information

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式

導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式 導讀 ASP.NET HTML ASP 第一篇 基礎篇第 1 章 認識 ASP.NET ASP.NET ASP.NET ASP.NET ASP.NET 第 2 章 認識 Visual Studio 20 開發環境 Visual Studio 20 Visual Studio 20 第二篇 C# 程式語言篇第 3 章 C# 程式語言基礎 C# C# 3.0 var 第 4 章 基本資料處理 C# x

More information

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之

中 文 摘 要 智 慧 型 手 機 由 於 有 強 大 的 功 能, 以 及 優 渥 的 便 利 性, 還 能 與 網 路 保 持 隨 時 的 鏈 結 與 同 步 更 新, 因 此 深 受 廣 大 消 費 者 喜 愛, 當 然, 手 機 遊 戲 也 成 為 現 代 人 不 可 或 缺 的 娛 樂 之 臺 北 市 大 安 高 級 工 業 職 業 學 校 資 訊 科 一 百 零 一 學 年 度 專 題 製 作 報 告 ------ 以 Android 製 作 ------ ----- 連 線 塔 防 遊 戲 ------ Tower defense game using Internet technology 班 級 : 資 訊 三 甲 組 別 : A9 組 組 員 : 葉 冠 麟 (9906129)

More information

SyncMail AJAX Manual

SyncMail AJAX Manual HKBN Cloud Mail on Mobile How to setup POP3 and IMAP (Version 1.1) 1 Table of Contents HKBN Cloud Mail 用戶設定 Android 手冊 HKBN Cloud Mail Android Setup... 3 Android 2.X... 3 Android 3.x - 4.X... 6 HKBN Cloud

More information

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378> 全國國高級中中等學校 105 學年度商商業類學學生技藝藝競賽 程式式設計 職職種 學學科 試試卷 崗位位編號 : 姓名 : 注意事項 : 請將答案案劃記於答案案卡, 未依依規定劃記者者不予計分分 試題說明 :( 選擇題每每題 4 分, 共 100 分 ) ( )1. 執行以下 Visual Basic 程式片段, 其結果為何?(A) 15 Dim i As Byte i = &HFC Console.WriteLine(Not

More information

多層次傳銷與獎金系統

多層次傳銷與獎金系統 醒 吾 技 術 學 院 資 訊 管 理 系 ( 五 專 部 ) 九 十 六 學 年 度 畢 業 專 題 多 層 次 傳 銷 與 獎 金 系 統 組 員 : 921506122 游 濬 瑋 921506126 陳 彥 宇 921506139 林 龍 華 921506144 陳 昶 志 921506149 楊 璧 如 指 導 老 師 : 汪 淵 老 師 中 華 民 國 九 十 七 年 一 月 十 一 醒

More information

untitled

untitled PowerBuilder Tips 利 PB11 Web Service 年度 2 PB Tips PB9 EAServer 5 web service PB9 EAServer 5 了 便 web service 來說 PB9 web service 力 9 PB11 release PB11 web service 力更 令.NET web service PB NVO 論 不 PB 來說 說

More information

中南大学第二届软件创新大赛

中南大学第二届软件创新大赛 3D 全 息 投 影 游 戏 平 台 参 赛 项 目 计 划 书 一 参 赛 作 品 构 思 的 创 意 与 价 值 1. 背 景 : 问 题 领 域 (1) 手 机 平 台 游 戏 发 展 火 爆 随 着 移 动 设 备 和 移 动 互 联 网 的 飞 速 发 展, 手 机 已 经 成 为 人 们 日 常 生 活 中 的 伙 伴 越 来 越 多 手 机 游 戏 APP 成 为 了 人 们 放 松

More information

Microsoft PowerPoint - 02_運算.pptx

Microsoft PowerPoint - 02_運算.pptx 回顧 第一個程式 基本架構 五行必寫的公式 註解的寫法 cout

More information

投影片 1

投影片 1 計算機程式及實習 期末報告 題目 : 六宿炒翻天 班級 : 奈米一乙姓名 : 陳洋翼學號 :4A514050 老師 : 謝慶存 程式說明 設計結帳系統, 選擇數量後, 在按下計算, 將會顯示總金額 若是老人或小孩, 將可享 8 折或 9 折的優惠 程式畫面 填選數量 在火腿蛋炒飯的數量選擇 1, 並按下計算, 可得總金額 50 元 程式畫面 打折 填選完後, 若客人是小孩或老人, 選擇欲打折項目,

More information

Microsoft PowerPoint - VB5

Microsoft PowerPoint - VB5 Visual Basic 6.0 (V) & VB.NET 丙檢試題第二站第一題身分證號碼 資科系林偉川 第二站試題 BASIC 應用程式設計 編號試題名稱 119-890306 身分證號碼檢查 119-890307 高速公路車輛統計 119-890308 分數加 減 乘 除運算 三選一 (80 分鐘 ) 2 1 VB6 第二站第一題身分證號碼 由循序檔讀入多筆記錄 Frame 物件 母件 單一物件

More information

Microsoft Word zw

Microsoft Word zw 第 1 章 Android 概述 学习目标 : Android Android Android Studio Android Android APK 1.1 1. 智能手机的定义 Smartphone 2. 智能手机的发展 1973 4 3 PC IBM 1994 IBM Simon PDA PDA Zaurus OS 1996 Nokia 9000 Communicator Nokia 9000

More information

新・解きながら学ぶJava

新・解きながら学ぶJava 481! 41, 74!= 40, 270 " 4 % 23, 25 %% 121 %c 425 %d 121 %o 121 %x 121 & 199 && 48 ' 81, 425 ( ) 14, 17 ( ) 128 ( ) 183 * 23 */ 3, 390 ++ 79 ++ 80 += 93 + 22 + 23 + 279 + 14 + 124 + 7, 148, 16 -- 79 --

More information

上海市教育考试院关于印发新修订的

上海市教育考试院关于印发新修订的 沪 教 考 院 社 考 2012 7 号 上 海 市 教 育 考 试 院 关 于 印 发 上 海 市 高 等 学 校 计 算 机 等 级 考 试 大 纲 (2012 年 修 订 ) 的 通 知 各 有 关 高 校 : 为 进 一 步 加 强 本 市 高 校 计 算 机 基 础 教 学 工 作, 推 进 学 校 更 加 科 学 合 理 地 设 置 计 算 机 基 础 课 程 及 安 排 教 学 内 容,

More information

AndroidUsersGuide.book

AndroidUsersGuide.book Android 2.3 2010 12 13 Android 2.3 2 Copyright 2010 Google Inc. Google Google Android Nexus Nexus Nexus S Nexus S Android Market Android Market Gmail Google Apps Google Google Checkout Google Google Google

More information

使用手冊

使用手冊 使用手冊 版權所有 2013 年 Microtek International, Inc. 保留所有權利 商標 Microtek MII MiiNDT ScanWizard Microtek International, Inc. Windows Microsoft Corporation 重要須知 Microtek Microtek Windows Microsoft Windows I49-004528

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 9 [P.11] : Dev C++ [P.12] : http://c.feis.tw [P.13] [P.14] [P.15] [P.17] [P.23] Dev C++ [P.24] [P.27] [P.34] C / C++ [P.35] 10 C / C++ C C++ C C++ C++ C ( ) C++

More information

WWW PHP Comments Literals Identifiers Keywords Variables Constants Data Types Operators & Expressions 2

WWW PHP Comments Literals Identifiers Keywords Variables Constants Data Types Operators & Expressions 2 WWW PHP 2003 1 Comments Literals Identifiers Keywords Variables Constants Data Types Operators & Expressions 2 Comments PHP Shell Style: # C++ Style: // C Style: /* */ $value = $p * exp($r * $t); # $value

More information

運算子多載 Operator Overloading

運算子多載 Operator Overloading 多型 Polymorphism 講師 : 洪安 1 多型 編譯時期多型 ( 靜態多型 ) function overloading 如何正確呼叫同名的函數? 利用參數個數與型態 operator overloading 其實同 function overloading 執行時期多型 ( 或動態多型 ) 如何正確呼叫不同物件的相同名稱的成員函數 利用繼承與多型 2 子類別與父類別物件間的指定 (assignment)

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

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

1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2 C3 3 STEP6 A1 STEP7 > > 1-11 1-3 1-3-1 Excel VBA VBA OK CD DVD Excel VBA Excel VBA Excel Visual Basic A1 1 B2 2 C3 3 STEP1 Excel Ch01_VBA.xlsm 1 > > STEP2 Excel 1 2 STEP3 1-10 1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2

More information

Microsoft Word - 第1章 Android基本概念.docx

Microsoft Word - 第1章 Android基本概念.docx Android 系 统 下 Java 编 程 详 解 作 者 : 华 清 远 见 第 1 章 Android 基 本 概 念 本 章 简 介 本 章 主 要 介 绍 Android 基 本 概 念 方 面 的 内 容, 包 括 Android 平 台 特 性 Android 系 统 架 构 Android 开 发 框 架 和 Android 开 发 环 境 搭 建 1.1 Android 简 介 Android

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

Visual Basic D 3D

Visual Basic D 3D Visual Basic 2008 2D 3D 6-1 6-1 - 6-2 - 06 6-2 STEP 1 5-2 (1) STEP 2 5-3 (2) - 6-3 - Visual Basic 2008 2D 3D STEP 3 User1 6-4 (3) STEP 4 User1 6-5 (4) - 6-4 - 06 STEP 5 6-6 (5) 6-3 6-3-1 (LoginForm) PictureBox1

More information

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明... 25 1

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明... 25 1 科 技 部 自 由 軟 體 專 案 原 始 程 式 碼 使 用 手 冊 Source Code Manual of NSC Open Source Project 可 信 賴 的 App 安 全 應 用 框 架 -App 應 用 服 務 可 移 轉 性 驗 證 Trusted App Framework -Transferability Verification on App MOST 102-2218-E-011-012

More information

01 用 ActionScript 3.0 開始認識 Flash CS3 Flash 是應用在網路上非常流行且高互動性的多媒體技術, 由於擁有向量圖像體積小的優點, 而且 Flash Player 也很小巧精緻, 很快的有趣的 Flash 動畫透過設計師的創意紅遍了整個網際網路 雖然很多人都對 Fl

01 用 ActionScript 3.0 開始認識 Flash CS3 Flash 是應用在網路上非常流行且高互動性的多媒體技術, 由於擁有向量圖像體積小的優點, 而且 Flash Player 也很小巧精緻, 很快的有趣的 Flash 動畫透過設計師的創意紅遍了整個網際網路 雖然很多人都對 Fl 01 用 ActionScript 3.0 開始認識 Flash CS3 Flash 是應用在網路上非常流行且高互動性的多媒體技術, 由於擁有向量圖像體積小的優點, 而且 Flash Player 也很小巧精緻, 很快的有趣的 Flash 動畫透過設計師的創意紅遍了整個網際網路 雖然很多人都對 Flash 可以做精美的網路動畫並不陌生, 但是實際上 Flash 不僅如此, 只要搭配 ActionScript

More information

星星排列 _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

星星排列 _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 資訊系統與實習 製作 : 林郁君 一 2009.09.28 9X9 'button 被按下後 ' Dim i, j As Integer For i = 1 To 9 'i 從 1 到 9' For j = 1 To 9 'j 從 1 到 9' If j * i < 10 Then ' 如果 j 乘上 i 是為個位數 ' Response.Write(i & "*" & j & " =" & i *

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

Microsoft PowerPoint - OPVB1基本VB.ppt

Microsoft PowerPoint - OPVB1基本VB.ppt 大 綱 0.VB 能 做 什 麼? CH1 VB 基 本 認 識 1.VB 歷 史 與 版 本 2.VB 環 境 簡 介 3. 即 時 運 算 視 窗 1 0.VB 能 做 什 麼? Visual Basic =>VB=> 程 式 設 計 語 言 => 設 計 程 式 設 計 你 想 要 的 功 能 的 程 式 自 動 化 資 料 庫 計 算 模 擬 遊 戲 網 路 監 控 實 驗 輔 助 自 動

More information

1. 2. Flex Adobe 3.

1. 2. Flex Adobe 3. 1. 2. Flex Adobe 3. Flex Adobe Flex Flex Web Flex Flex Flex Adobe Flash Player 9 /rich Internet applications/ria Flex 1. 2. 3. 4. 5. 6. SWF Flash Player Flex 1. Flex framework Adobe Flex 2 framework RIA

More information

國立北斗家商 107 學年度第 2 學期第二次期中考科目 : 計算機應用 計算機概論 IV 班級 : 商二 1 2 貿二 資二 綜二 1 作答方式 : 答案卡 選擇題共 33 題, 除第 1 題 4 分, 其餘每題 3 分, 注意作答時間 1. ( ) 使用 Visual Basic 程式語言 (

國立北斗家商 107 學年度第 2 學期第二次期中考科目 : 計算機應用 計算機概論 IV 班級 : 商二 1 2 貿二 資二 綜二 1 作答方式 : 答案卡 選擇題共 33 題, 除第 1 題 4 分, 其餘每題 3 分, 注意作答時間 1. ( ) 使用 Visual Basic 程式語言 ( 國立北斗家商 107 學年度第 2 學期第二次期中考科目 : 計算機應用 計算機概論 IV 班級 : 商二 1 2 貿二 資二 綜二 1 作答方式 : 答案卡 選擇題共 33 題, 除第 1 題 4 分, 其餘每題 3 分, 注意作答時間 1. ( ) 使用 Visual Basic 程式語言 ( 以下皆是 ) 執行下列程式碼後,T 值為何? (A)495 (B)550 (C)594 (D)5050

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc Java C++ Pascal C# C# if if if for while do while foreach while do while C# 3.1.1 ; 3-1 ischeck Test() While ischeck while static bool ischeck = true; public static void Test() while (ischeck) ; ischeck

More information

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8

TPM BIOS Infineon TPM Smart TPM Infineon TPM Smart TPM TPM Smart TPM TPM Advanced Mode...8 Smart TPM Rev. 1001 Smart TPM Ultra TPM Smart TPM TPM...3 1. BIOS... 3 2. Infineon TPM Smart TPM... 4 2.1. Infineon TPM...4 2.2. Smart TPM...4 3. TPM... 5 3.1. Smart TPM TPM...5 3.2. Advanced Mode...8

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK

關於本書 l 3 PhoneGap Appcelerator Titanium Sencha Touch (wrapper framework) Native App PhoneGap Build Native App Hybrid App Java Objective-C Android SDK 2 l 跨裝置網頁設計 Android ios Windows 8 BlackBerry OS Android HTML 5 HTML 5 HTML 4.01 HTML 5 CSS 3 CSS 3 CSS 2.01 CSS 3 2D/3D PC JavaScript

More information

Microsoft PowerPoint - VB3

Microsoft PowerPoint - VB3 Visual Basic 6.0 & VB.NET 丙檢設計第一站 資科系林偉川 VB 之 for 指令 for 變數 = 初值 to 終值 step 增值多個指令 Next 中途離開用 if 指令判斷條件成立後 exit for Ex: Q=2, w=100, e=2, s=0 For i = q To w Step e s = s + i Next i 2 1 VB6 提供之內建函數 End 執行結束

More information

untitled

untitled VB 來 立 李 龍老 年 參 車 令 度 綠 車 不 不 靈 了 來 令來 了老 利 來 練 念 邏 念 數 度 念 狀 不 度 令 數 更 參 VB VB VB 理 VB 類 數 (x,y) (0,0) x y x,y 數 (0,0) (x, 0) (0, y) (x, y) VB 裡 來 VB 來 1 Graphics VB Graphics Private Sub Button1_Click(

More information

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

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

More information

RUN_PC連載_12_.doc

RUN_PC連載_12_.doc PowerBuilder 8 (12) PowerBuilder 8.0 PowerBuilder PowerBuilder 8 PowerBuilder 8 / IDE PowerBuilder PowerBuilder 8.0 PowerBuilder PowerBuilder PowerBuilder PowerBuilder 8.0 PowerBuilder 6 PowerBuilder 7

More information

( )... 5 ( ) ( )

( )... 5 ( ) ( ) 2016 大學校院招收大陸地區學生聯合招生委員會 71005 臺南市永康區南臺街 1 號 E-mail:rusen@stust.edu.tw WEB:http://rusen.stust.edu.tw TEL:+886-6-2435163 FAX:+886-6-2435165 2 0 1 6 0 1 1 9 2016... 2... 3... 5 ( )... 5 ( )... 5 1... 6 2...

More information

(Microsoft Word - wes _\246p\246\363\250\317\245\316watchdog\250\276\244\356\265{\246\241\267\355\276\367.doc)

(Microsoft Word - wes _\246p\246\363\250\317\245\316watchdog\250\276\244\356\265{\246\241\267\355\276\367.doc) 作者 Amber 版本 1.0.0 日期 2012/04/24 頁數 1/9 如何使用 watchdog 防止程式當機? 適用於 : 平台 作業系統版本 XPAC utility 版本 XP-8000 系列 WES2009 所有版本 XP-8000-Atom 系列 WES2009 所有版本 注意! 欲變更系統的任何設定之前, 請先關閉 EWF 的保護, 方能使變更值生效 ; 設定完成之後, 請再開啟

More information

The Embedded computing platform

The Embedded computing platform 嵌入式系統及實驗 Embedded System and Experiment 詹曉龍 長庚大學電機系 Java 的類別與物件 : 宣告類別 建構子 public class Customer { private String name; private String address; // Customer 類別宣告 // 成員資料 public int age; // 建構子 : 使用參數設定成員資料初始值

More information

VB.Net

VB.Net VB.NET 視窗程式設計基本語法 : 變數宣告 NTU CSIE 講師 : 張傑帆 VB.NET 基本語法 在學習視窗程式之前我們需要先熟悉一下 Visual Basic 的基本語法, 包括 : 變數 運算子 選擇性結構 重複結構 陣列 程序 及結構化例外處理等語法 這些語法是程式邏輯的基礎, 也是程式和電腦硬體溝通, 並指揮電腦內部運作的橋梁 電腦五大單元 識別字 (Identifier) 程式

More information

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

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF Chapter 2 WF 2.1 WF 2.2 2. XAML 2. 2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF WF WF WF WF EDI API WF Visual Studio Designer 1 2.1 WF Windows Workflow Foundation 2 WF 1 WF Domain-Specific

More information

Microsoft Word - 投影片ch06

Microsoft Word - 投影片ch06 Java2 JDK5.0 教學手冊第三版洪維恩編著博碩文化出版書號 pg20210 第六章陣列 本章學習目標認識陣列與一般資料型態的不同認識一維與二維陣列學習陣列的應用 陣列 6-2 6.1 一維陣列 一維陣列 (1-dimensional array) 可以存放多個相同資料型態的資料 6.1.1 一維陣列的宣告與記憶體的配置 要使用陣列必須經過兩個步驟 :(1) 宣告陣列 (2) 配置記憶體給該陣列

More information

untitled

untitled 1 .NET sln csproj dll cs aspx 說 料 料 利 來 料 ( 來 ) 利 [] [] 來 說 切 切 理 [] [ ] 來 說 拉 類 類 [] [ ] 列 連 Web 行流 來 了 不 不 不 流 立 行 Page 類 Load 理 Click 滑 料 Response 列 料 Response HttpResponse 類 Write 料 Redirect URL Response.Write("!!

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

Maasa停車場管理系統

Maasa停車場管理系統 停車 場 管理系 統 目錄 一.前言 1 1.1 系統特色 1 1.2 說明書閱讀方法 2 二.安裝流程 3 三.第一次使用 4 四.停車開單/收據 12 五.開單紀錄傳回電腦 17 六.停車場管理系統詳解 19 6.1 盤點機端 19 6.1.1 統計資料 21 6.1.2 工具箱 資料 瀏覽 22 6.1.3 工具箱 資料刪除 23 6.1.4 工具箱 補印開單 24 6.2 Pc端 25 6.2.1

More information

2016 勒索軟體白皮書

2016 勒索軟體白皮書 Botnet Botnet 1 1 2 2 5 5 6 9 10 11 11 11 12 12 12 12 12 12 13 14 2016 1989 AIDS AIDS C 189 2005 2006 TROJ_CRYPZIP.A 2011 TROJ_RANSOM.QOWA 12 2012 REVETON 2013 Cryptolocker Cryptolocker AES RSA Cryptolocker

More information

Microsoft PowerPoint - Android_Ch01.ppt [相容模式]

Microsoft PowerPoint - Android_Ch01.ppt [相容模式] 第 1 章 Android 基礎與開發環境的建立 第 1 章 Android 基礎與開發環境的建立 1 1 Android 的基礎 1 2 Android 的系統架構 1 3 Android 應用程式的組成元件 1 4 Android 應用程式的開發環境 1 5 下載與安裝 Android 開發環境 本投影片參考陳會安先生投影片製作修改, 僅供教學使用 楊偉儒 Email: wzyang0825@gmail.com

More information

序 言 本 专 业 人 才 培 养 方 案 以 适 应 市 场 需 求 为 目 标, 根 据 学 校 校 企 双 主 体 人 才 培 养 的 要 求 和 移 动 应 用 开 发 专 业 的 特 点 设 置 课 程 体 系, 体 现 了 课 程 为 市 场 服 务 的 特 点 本 专 业 要 求 学

序 言 本 专 业 人 才 培 养 方 案 以 适 应 市 场 需 求 为 目 标, 根 据 学 校 校 企 双 主 体 人 才 培 养 的 要 求 和 移 动 应 用 开 发 专 业 的 特 点 设 置 课 程 体 系, 体 现 了 课 程 为 市 场 服 务 的 特 点 本 专 业 要 求 学 广 东 新 安 职 业 技 术 学 院 计 算 机 移 动 应 用 开 发 专 业 2016 级 人 才 培 养 方 案 专 业 方 向 负 责 人 : 梅 红 系 主 任 : 毛 立 冰 计 算 机 系 二 一 五 年 六 月 序 言 本 专 业 人 才 培 养 方 案 以 适 应 市 场 需 求 为 目 标, 根 据 学 校 校 企 双 主 体 人 才 培 养 的 要 求 和 移 动 应 用 开

More information

ACI pdf

ACI pdf 09 9.1 -...9-2 9.1.1...9-2 9.1.2...9-3 9.2 -...9-4 9.2.1 PMT - ()...9-4 9.2.2...9-6 9.3 -...9-8 9.3.1 PMT - ()...9-8 9.4...9-10 9.4.1... 9-11 9.4.2...9-12 9.4.3...9-14 9.5 -...9-17 9.5.1...9-18 1 Excel...9-21

More information

附 錄

附 錄 附 錄 屬性 / 方法 / 事件說明適用控制項屬性218 程式語言與設計 -Visual Basic Ⅰ 附錄 A A-1 Visual Basic 控制項常用的屬性 方法及事件 每一個控制項都有一些預定的屬性 方法及事件, 表 A - 1 彙整了常用的屬 性 方法及事件的說明 表 A-1 Visual Basic 控制項常用的屬性 方法及事件 AutoSize 控制項大小可隨控制項內文字的字 數

More information

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M ASP.NET MVC Visual Studio 2017 1 1-4 MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\MvcExamples firstmvc MVC 1-7 ASP.NET MVC 1-9 ASP.NET

More information

Microsoft Word - AEL117-CH09.doc

Microsoft Word - AEL117-CH09.doc 9-1 模組化程式設計 9-2 建立程序與函數 9-3 傳值或傳址呼叫 9-4 程序與函數的變數範圍 9-5 常用的內建函數 9-1 模組化程式設計 目前應用程式或系統軟體的功能愈來愈強大, 從前一個人寫出的試算表程式, 幾個人開發的作業系統將成為神話, 模組化程式設計在應用程式開發上也就愈顯其重要性 9-1-1 模組的基礎 應用程式或系統軟體因為需要大量人員參與分析 設計與開發, 因此將一個大型應用程式的功能分割成一個個獨立的子功能,

More information