Delphi 提供了跨平台應用程式開發能力,涵蓋 Windows、macOS、Android、iOS 和 Linux。本篇著重於 Delphi IDE 的使用、專案建立與管理,以及應用程式在 Android 和 iOS 裝置上的佈署流程。我們將從建立一個簡單的 “Hello World” 專案開始,逐步講解 IDE 的各項功能,包括程式碼編輯器、工具面板、物件檢視器等。接著,會詳細說明如何設定 Android 和 iOS SDK,並使用 PAServer 進行 iOS 應用程式的佈署和除錯。最後,我們還會探討 Delphi 專案的結構和建置設定,以及如何使用專案管理員來管理專案檔案和資源。

Delphi 安裝與 IDE 介紹

Delphi 是一款強大的開發工具,用於建立跨平台的應用程式。在安裝並執行 Delphi 後,首先會看到歡迎頁面,如圖 1.2 所示。

歡迎頁面

歡迎頁面提供了幾個重要的功能區域:

  • Create New:建立新的應用程式。
  • Open Recent:開啟最近的專案,並可將常用專案標記為最愛,方便快速存取。
  • GetIt:存取和管理附加元件包。
  • Learn:觀看 Embarcadero 提供的 YouTube 教學影片。

安裝自定義元件

Delphi 的 IDE 具有開放式架構,允許透過附加包擴充套件其功能。這些包可以包含元件、自定義屬性編輯器以及對 IDE 本身的擴充套件。要檢視已安裝的包,可以透過 Component 選單中的 Installed Packages… 選項。

圖 1.3:已安裝的包

在預設安裝下,Delphi 已經包含數百個元件。使用者可以透過 Component 選單中的 Install Packages 選項來檢視和管理這些元件。

使用 GetIt Package Manager 安裝新元件

GetIt 是 Delphi 的內建包管理器,可以用來安裝額外的免費或商業元件包。這些包可以透過歡迎頁面或 Tools 選單存取。

圖 1.4:GetIt Package Manager 對話方塊

在 GetIt 中,使用者可以輕鬆地安裝新的元件包,只需點選包旁邊的 Install 按鈕即可。安裝過程包括下載、編譯和安裝到 IDE 中。

自定義 IDE 選項

透過 Tools 選單中的 Options 對話方塊,可以管理 Delphi IDE 的各個方面,從而自定義 IDE 的行為和外觀。

圖 1.5:Delphi IDE Options 對話方塊

這個對話方塊包含了多個頁面,用於組態不同的 IDE 選項。

瞭解 Delphi 編譯器和工具鏈

Delphi 本質上是一個用於生成其他程式的程式。編譯器是負責將原始碼轉換為可執行檔案的關鍵工具。Delphi 提供了多個編譯器,用於生成不同平台上的應用程式。

圖 1.6:簡化的編譯器架構

使用者可以透過命令列或直接在 IDE 中呼叫編譯器。IDE 管理著所有必要的原始碼檔案,並將正確的引數傳遞給相應的編譯器。

Delphi 編譯器列表

Delphi 12.0 提供了九個不同的編譯器,用於生成不同平台上的應用程式,如表 1.1 所示。

Delphi 編譯器目標平台
Dcccaarm32 位元 Android
dccaarm6464 位元 Android
dcciosarm6464 位元 iOS
dcc3232 位元 Windows
dcc6464 位元 Windows
dccosx6464 位元 macOS (Intel)
dccosxarm6464 位元 macOS (ARM)
dcciossimarm64macOS ARM 上的 iOS 模擬器
dcclinux6464 位元 Linux (Intel)

表 1.1:Delphi 編譯器列表

使用 IDE 開發應用程式

IDE 將程式碼編輯器、編譯器和偵錯程式整合在一起,極大地提高了開發效率。使用者可以在 IDE 中直接構建、佈署和執行應用程式,也可以選擇是否進行除錯。

圖表翻譯:

此圖示展示了 Delphi 編譯器的架構及其與不同平台的對應關係。 圖表翻譯: 圖 1.6 詳細展示了編譯器的簡化架構,說明瞭如何透過命令列引數控制編譯過程,以及如何將原始碼轉換為不同平台上的可執行檔案。

深入探索Delphi開發環境

Delphi作為一個強大的開發工具,其編譯器通常安裝在產品安裝資料夾下的bin資料夾中(預設路徑為C:\Program Files (x86)\Embarcadero\Studio\)。安裝程式會將Delphi的bin資料夾新增至Windows的環境變數Path中,因此可以直接從命令列執行編譯器。當在命令列中不帶任何引數執行Delphi編譯器時,它將顯示版本號碼和可用的命令列引數。

命令列編譯器的使用

在IDE中,我們不需要直接呼叫命令列編譯器。當我們選擇執行、建置或編譯專案時,IDE會自動處理並將產生的二進位檔案輸出到各個支援平台和建置組態的獨立資料夾中。在建置、佈署和執行應用程式的過程中,我們可以在訊息日誌窗格中看到被執行的命令,包括傳遞給它們的引數和輸出結果。

建立第一個Delphi應用程式:“Hello World”

按照慣例,學習新的程式語言或框架時,通常會從建立一個顯示“Hello World”訊息的程式開始。我們的應用程式將包含一個按鈕,當按下該按鈕時,將顯示“Delphi Hello World!”訊息。

建立新專案

  1. 點選檔案 | 新建選單中的多裝置應用程式 - Delphi選項,或透過歡迎頁面進入。
  2. 在出現的多裝置應用程式專案範本對話方塊中,雙擊空白應用程式專案範本,建立新專案並在IDE中開啟其主表單。

儲存專案

建立新專案後,第一步是儲存所有檔案。Delphi專案由多個由IDE管理的檔案組成。IDE還會在專案目錄中建立子資料夾,用於管理不同的構件,如編譯後的執行檔、編輯器歷史記錄和復原檔案等。因此,總是將新專案儲存到新的空資料夾中是一個好習慣。

  1. 點選Delphi工具列上的全部儲存按鈕,儲存專案中的所有檔案。
  2. 首先,會要求儲存應用程式的主表單,將其命名為uFormHelloWorld並儲存。
  3. 接著,會出現第二個檔案儲存對話方塊,要求為專案命名,將其命名為DelphiHelloWorld並儲存。

新增元件至表單

  1. 使用IDE Insight是快速操作IDE的方法之一。按下F6或同時按下Ctrl + .鍵,即可將焦點移至IDE Insight組合框。開始輸入所需元件的名稱,IDE Insight會根據輸入動態篩選可用專案。輸入“b”、“u”、“t”後,TButton元件將成為列表中的第一項。按下Enter鍵,即可將按鈕新增至表單。

    或者,也可以在工具調色盤視窗中找到TButton元件並雙擊它,將其新增至表單。

  2. 將新增的按鈕移動到表單的左上角。在物件檢查器窗格中,找到TButton1Text屬性,並將其預設標題“Button1”替換為“Hello World”。

程式碼解說與實作

按鈕點選事件處理

為了實作當按下按鈕時顯示“Delphi Hello World!”訊息的功能,我們需要為按鈕的點選事件新增處理程式碼。

procedure TuFormHelloWorld.Button1Click(Sender: TObject);
begin
  ShowMessage('Delphi Hello World!');
end;

內容解密:

  • procedure TuFormHelloWorld.Button1Click(Sender: TObject);:定義了按鈕點選事件的處理程式。當使用者點選按鈕時,此程式會被呼叫。
  • ShowMessage('Delphi Hello World!');:在訊息對話方塊中顯示指定的字串“Delphi Hello World!”。

使用Delphi開發多裝置應用程式:從建立專案到執行

在上一章節中,我們已經瞭解了Delphi的基本開發環境和工具。現在,我們將進一步探討如何使用Delphi建立一個簡單的「Hello World」應用程式,並深入瞭解Delphi IDE的各種功能。

建立專案與設計使用者介面

首先,我們需要建立一個新的多裝置應用程式專案。在Delphi IDE中,這可以透過選擇適當的專案範本來完成。一旦專案建立完成,我們就可以開始設計使用者介面。

變更元件名稱與屬性

在表單設計器中,我們新增了一個按鈕元件。接下來,我們需要修改這個按鈕的Name屬性,將其更改為BtnHelloWorld。這個變更不僅會在結構檢視中反映出來,也會影響到我們已經產生的應用程式碼框架。

// 示範程式碼:變更元件名稱
BtnHelloWorld: TButton;

#### 內容解密:

在上述程式碼中,BtnHelloWorld是按鈕元件的名稱,TButton代表按鈕元件的型別。這種命名慣例有助於開發者快速識別元件的型別。

同樣地,我們也需要修改主表單的Name屬性,將其從預設的Form1更改為FormHelloWorld,並將其Caption屬性更改為「Delphi Hello World」。這些變更將使我們的應用程式更具可讀性和易用性。

定義事件處理程式

為了讓我們的應用程式在使用者點選按鈕時執行特定的動作,我們需要為BtnHelloWorld按鈕的OnClick事件附加一個事件處理程式。這可以透過在物件檢查器中雙擊OnClick事件旁邊的空白處來完成,或者直接在表單上雙擊按鈕。

事件處理程式範例

procedure TFormHelloWorld.BtnHelloWorldClick(Sender: TObject);
begin
  ShowMessage('Delphi Hello World');
end;

#### 內容解密:

在這個事件處理程式中,我們呼叫了內建的ShowMessage函式,並傳遞了一個字串引數「Delphi Hello World」。當使用者點選按鈕時,這個訊息框將會顯示出來。TFormHelloWorld.BtnHelloWorldClick是事件處理程式的宣告,表明它與BtnHelloWorld按鈕的點選事件相關聯。

編譯與執行應用程式

完成上述步驟後,我們可以按下F9鍵或點選IDE中的綠色執行箭頭圖示來編譯並執行我們的應用程式。這將生成一個Windows 32位元的可執行檔,並在Windows環境下執行。

Delphi專案結構

圖表翻譯:

此圖表示展示了Delphi專案的基本結構,包括.pas原始碼檔案和.fmx表單檔案。.pas檔案包含了表單的程式碼實作,而.fmx檔案則由表單設計器管理,儲存了表單的設計資訊。

瞭解Delphi專案檔案

每個Delphi表單都由兩個原始碼檔案組成:.pas檔案和.fmx檔案。.pas檔案包含了表單的程式碼,而.fmx檔案則儲存了表單的設計資訊。

預覽表單檔案內容

我們可以透過在表單上點選右鍵並選擇「檢視為文字」來預覽.fmx檔案的內容。

管理專案與建置設定

專案管理員是Delphi IDE中的一個重要視窗,它提供了一個圖形介面來管理工作專案中的所有檔案,並允許我們在不同的編譯器和建置設定之間切換。我們可以選擇以偵錯模式或發行模式建置應用程式。

專案建置流程

圖表翻譯:

此圖表示展示了Delphi專案的建置流程。原始碼經過編譯後,可以選擇以偵錯模式或發行模式建置。偵錯模式包含了偵錯資訊,而發行模式則會最佳化程式碼,以適應釋出需求。

Delphi 開發環境建置與行動裝置佈署

Delphi 是一種功能強大的開發工具,能夠協助開發者快速建立跨平台應用程式。在本篇文章中,我們將介紹如何使用 Delphi 建立一個簡單的 “Hello World” 專案,並將其佈署到 Android 和 iOS 行動裝置上。

建立 Delphi 專案

首先,我們需要在 Delphi 中建立一個新的專案。開啟 Delphi IDE 後,選擇 “File” > “New” > “Multi-Device Application” 以建立一個新的跨平台專案。在此範例中,我們將建立一個簡單的 “Hello World” 應用程式。

瞭解專案結構

在建立專案後,我們可以在 Project Manager 中看到專案的結構。其中包含了兩個重要的檔案:DelphiHelloWorld.dprDelphiHelloWorld.dproj

  • DelphiHelloWorld.dpr 是專案的主要程式檔案,由 IDE 管理,通常不需要手動修改。
  • DelphiHelloWorld.dproj 包含了專案的建置指令,使用 MSBuild 引擎來管理專案的檔案和資源。

編譯與建置專案

在 Delphi 中,我們可以選擇 “Build” 或 “Compile” 來建置專案。兩者的差異在於,“Build” 會重新建置所有的二進位檔案,而 “Compile” 只會重新編譯有變更的單元。

程式碼範例:

program DelphiHelloWorld;

uses
  System.StartUpCopy,
  FMX.Forms,
  uFormHelloWorld in 'uFormHelloWorld.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

內容解密:

此段程式碼是 Delphi 專案的主要程式入口。首先,它使用了 System.StartUpCopy 單元來處理跨平台資源的複製。然後,它初始化了 FMX(FireMonkey)表單,並建立了應用程式的主表單。最後,應用程式進入了執行迴圈。

佈署到 Android 裝置

要將 Delphi 應用程式佈署到 Android 裝置,需要進行以下步驟:

  1. 啟用 USB 除錯:在 Android 裝置上進入 “設定” > “關於手機”,連續點選 “組建號碼” 七次以啟用開發者選項。然後,在 “設定” > “系統” > “開發者選項” 中啟用 USB 除錯。
  2. 安裝 Android SDK 和 USB 驅動程式:下載並安裝 Android SDK,同時安裝對應的 USB 驅動程式。
  3. 在 Delphi 中設定 Android SDK:開啟 Delphi IDE,進入 “Tools” > “Options”,在 “SDK Manager” 中新增 Android SDK 的路徑。
  4. 選擇 Android 目標裝置:在 Project Manager 中,選擇 Android 平台和目標裝置。

Android 佈署流程

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

title Delphi開發環境建置與行動裝置佈署

package "系統架構" {
    package "前端層" {
        component [使用者介面] as ui
        component [API 客戶端] as client
    }

    package "後端層" {
        component [API 服務] as api
        component [業務邏輯] as logic
        component [資料存取] as dao
    }

    package "資料層" {
        database [主資料庫] as db
        database [快取] as cache
    }
}

ui --> client : 使用者操作
client --> api : HTTP 請求
api --> logic : 處理邏輯
logic --> dao : 資料操作
dao --> db : 持久化
dao --> cache : 快取

note right of api
  RESTful API
  或 GraphQL
end note

@enduml

圖表翻譯: 此圖表顯示了將 Delphi 應用程式佈署到 Android 裝置的步驟。首先,需要在 Android 裝置上啟用 USB 除錯。接著,下載並安裝 Android SDK 和對應的 USB 驅動程式。在 Delphi IDE 中設定 Android SDK 的路徑後,選擇 Android 平台和目標裝置,最後佈署應用程式。

佈署至iOS裝置的複雜流程

將Delphi開發的應用程式佈署到iOS裝置上,相較於Android,其複雜度明顯更高。以下為快速檢查清單,列出所需的條件:

  • 一台執行macOS的蘋果Mac電腦,可以是Intel或ARM版本,但若要在iOS模擬器中執行應用程式,則需要ARM版本。
  • 在Mac上安裝蘋果Xcode(免費)開發環境。iOS沒有獨立的SDK;開發工具僅作為蘋果開發者IDE的一部分提供。原因是,在佈署到iOS裝置的過程中,需要使用與蘋果Xcode安裝一起提供的特殊命令列工具對應用程式進行數位簽章。
  • 一個已付費的蘋果iOS開發者計畫帳戶。
  • 一台實體iOS(或iPadOS)裝置。要能夠將應用程式佈署到iOS裝置上,首先需要對其進行佈建。佈建iOS裝置、加入蘋果iOS開發者計畫以及安裝各種憑證的過程,與使用Xcode開發的任何應用程式相同。你可以參考蘋果提供的檔案來瞭解這個過程。

除了這些依賴於蘋果程式且與所選開發工具無關的要求外,Delphi還需要額外的一個步驟。你需要在安裝了Xcode的Mac上安裝特殊的平台助手伺服器(PAServer)程式。PAServer安裝包位於Delphi安裝資料夾的“PAServer”子目錄中。只需將其複製到Mac上並執行即可。

平台助手伺服器(PAServer)的組態與使用

PAServer是以命令列應用程式的形式實作的。在Mac上啟動後,它將顯示一個命令列介面,並提示你輸入Mac密碼。你的Mac也會顯示一個對話方塊,詢問是否允許PAServer獲得除錯許可權,請接受它。

你可以將PAServer視為代表在遠端Windows機器上執行的Delphi IDE執行操作的代理。要使Delphi能夠連線,你需要知道執行PAServer的機器的IP地址。你可以在PAServer的命令提示字元中輸入i命令來查詢IP地址。當你在命令提示字元中輸入?時,將顯示PAServer的所有可用命令列引數列表。請參見圖1.26。

PAServer工具在Mac上的執行畫面

此圖示展示了PAServer工具在Mac上的執行情況。

圖表翻譯: 此圖表顯示了PAServer在Mac上的執行介面,用於與Delphi IDE進行通訊。

在Delphi中組態iOS SDK

現在,你需要在Delphi中進行組態,以便能夠找到你要佈署到的iOS裝置。目標是在專案管理器區域中找到你的裝置。一般來說,你的Delphi安裝可以看見多台不同的Mac。對於每一台你要佈署到的Mac,你都需要定義一個連線設定檔。

如同為Android所做的那樣,我們需要為iOS組態SDK。同樣,開啟“工具”|“選項”對話方塊,並選擇“佈署”|“SDK管理器”。這次,你必須選擇“iOS裝置64位元”平台。此時,你必須選擇一個現有的或定義一個新的設定檔來連線。設定檔是一種指向執行PAServer的Mac的IP地址的組態。

當你在“連線設定檔”組合框中選擇“新增”時,將顯示“建立連線設定檔”精靈(見圖1.27)。輸入設定檔名稱,然後點選“下一步”。在精靈對話方塊的下一個標籤頁中,我們需要輸入遠端機器的地址和埠。保持預設的64211埠,並在最後一個欄位中輸入你的Mac密碼:

建立連線設定檔對話方塊,用於組態Delphi中的iOS SDK

此圖示展示了用於組態iOS SDK的連線設定檔建立精靈。

圖表翻譯: 此圖表解釋瞭如何使用精靈建立連線設定檔,以便在Delphi中組態iOS SDK。

點選“測試連線”按鈕,以驗證IDE是否能夠與遠端的PAServer進行通訊。如果一切順利,你應該會看到一條訊息,指出與Mac的連線成功。點選“完成”,然後繼續進行SDK管理器組態中的以下步驟(見圖1.28)。

新增SDK對話方塊

一旦快取重新整理,IDE應該會自動更新“iOS 64位元”目標節點,並且你應該在那裡看到你的裝置。在圖1.29中,你可以看到具有iOS模擬器目標組態的專案。

現在,點選“執行”按鈕。這將在本機構建iOS ipa可執行檔案,並將其傳送到執行PAServer的Mac機器上。PAServer將呼叫Xcode安裝中的命令列工具對可執行檔案進行數位簽章,之後它將被佈署並在實體iOS裝置上執行,所有這些都在一個操作中完成。

Delphi “Hello World”應用程式在iOS模擬器上的執行畫面

此圖示展示了Delphi開發的“Hello World”應用程式在iOS模擬器上的執行情況。

圖表翻譯: 此圖表顯示了Delphi開發的應用程式如何在iOS模擬器上成功執行。