KOL-CE/zh TW

From Lazarus wiki
Jump to navigationJump to search
Windows logo - 2012.svg

This article applies to Windows only.

See also: Multiplatform Programming Guide

WinCE Logo.png

This article applies to Windows CE only.

See also: Multiplatform Programming Guide

English (en) français (fr) 한국어 (ko) русский (ru) 中文(中国大陆) (zh_CN) 中文(臺灣) (zh_TW)

介紹

KOL-CE是由Vladimir Kladov 開發的元件,在其他平台上為KOL跟MCK兩組套件,現在則是將之移植到Free Pascal跟Lazarus上使用,關於它的授權,請參見: wxWindow函式庫授權.

KOL-CE可以建立非常精簡的Win32/WinCE圖形介面程式(如果專案只包含一個空的視窗的話,建置出來的程式碼大約只占40KB而已)。

MCK則是讓KOL-CE專案使用的一組Lazarus套件,KOL-CE的圖形介面就是靠MCK來達成的。

原本KOL-CE只是計劃把KOL移植給WinCE使用而已,但後來開發的時候決定要把Win32的許多功能保留下來,並讓FPC開發WinCE應用程式能夠更順利。原本KOL是為Delphi設計的,當時在FPC上面運作並不順,而原始的MCK則是完全不能在Lazarus上面使用的。

基本需求

  • Win32平台上的Free Pascal編譯器2.2.0版或更新的版本。
  • Win32平台上的arm-wince交叉編譯器2.2.0或更新的版本(開發WinCE程式時會用到).
  • Win32平台上的Lazarus 0.9.23版或更新的版本。

能支援的平台

  • 所有32位元的Windows作業系統,從Windows 95到Vista都行。
  • 使用Windows CE為作業系統的PocketPC跟手機。

下載

請從這裡下載最新版的KOL-CE

您也可以從SVN下載最新出爐的KOL-CE原始碼,連結如下: https://kol-ce.svn.sourceforge.net/svnroot/kol-ce/trunk

安裝


如果您正在使用Lazarus 0.25版或更新的版本,則您就需要先加入DisableFakeMethods這個設定,重新編譯Lazarus,接著才能安裝MCK套件。

步驟如下:

  1. 執行Lazarus.
  2. 點選選單項目: Tools > Configure "Build Lazarus"...
  3. Quick Build Options分頁上,點選Clean Up + Build all項目。
  4. 開啟Advanced Build Options分頁,並在Options這個對話框裡面加入-dDisableFakeMethods這個設定字串。
  5. 點選Build按鍵以重新建置Lazarus。

MCK package
  1. 下載KOL-CE的原始碼,並將之放在您的硬碟裡(當然要解壓縮)。
  2. 執行Lazarus並點選選單項目Components > Open package file (.lpk),然後尋找到MCK套件所在的目錄,並選擇MirrorKOLPackage.lpk這個檔案。
  3. 套件視窗此時就會跳出來了,請按下Install按鍵。
  4. Lazarus會將MCK套件進行編譯,然後重新執行Lazarus IDE。
  5. Lazarus IDE重新出現後,KOL分頁就會在元件盤上面出現了。

KOL 元件盤分頁

附註: 如果您沒有在元件盤上面看到KOL分頁的話,請把該視窗的高度拉大一點即可,您會看到元件盤的分頁標籤變成兩排,KOL分頁標籤就會出現在第二排。(如上面的螢幕截圖所示)

MCK套件的升級非常簡單,請直接用新版的KOL-CE原始碼把舊版的覆蓋掉,再次開啟MCK套件(MirrorKOLPackage.lpk),然後按下Install按鍵,重新編譯套件就行了。

使用MCK

建立MCK專案

MCK form
  1. 啟動Lazarus並點選表單來新增一個應用程式專案:File > New...
  2. 新增專案以後不要急! 千萬不要在這個時候放任何元件上去,請先把專案存檔,點選目錄選項: File > Save All,然後選擇您要存放專案檔案的目錄即可。

請注意!該專案的所有檔案,都必須存放在同一個目錄裡面。您可以隨時變更表單的單元檔檔名,但請不要變更專案的名稱,就用原來的Project1.lpi

  1. 請拖拉一個TKOLProject元件放到表單上面。
  2. 請設定ProjectDest這個屬性,來變更MCK專案的名稱(不用包含路徑喔)。如果您輸入了MyKOLProg,那麼您的MCK專案名稱就會自動變成MyKOLProg.lpi,而產生出來的執行檔,也會被命名為MyKOLProg.exe
    ProjectDest property
  3. 請把TKOLForm這個元件拖放到表單上面。
  4. 把目前的專案存起來。
  5. 請開啟剛剛您在ProjectDest屬性內設定的專案名稱, (在剛剛的例子裡面,應該是MyKOLProg.lpi,應該可以在同一個目錄裡面找到。然後,您就可以把project1.*給刪掉了,以後不會再用到這些檔案了。
  6. 跟您的新KOL/MCK專案熟悉一下吧。(調整參數,放TKOL相關元件,編譯,執行,偵錯等等) 祝您玩的高興啦!

新增一個表單

  1. 點選目錄選項: File > New form
  2. 把新表單跟專案存放在同一個目錄裡面。(如果專案檔已經存檔了的話,沒存檔的話請先把專案檔存檔)
  3. TKOLForm元件拖拉到表單上面來。
  4. 請確認在專案的主表單上面,已經有擺放了TKOLApplet這個元件。
  5. 如果AutoBuild這個屬性已經設定為關閉,請點選主表單上面的TKOLProject元件,並雙擊它的屬性Build就可以建置該專案了,如果您雙擊Build沒有動靜的話,請按alt+Tab將視窗的焦點移到別的視窗上面,您就會發現有所動作了。

撰寫程式碼

請別使用RTL/FCL/LCL相關的單元,由其是SysUtils, Classes, Form這些單元,您需要的函式,應該在KOL, Windows, Messages這三個單元檔裡面找到,或者是由您自行撰寫的。 當您在專案內撰寫程式碼的時候,請記得要放在事件處理函式內。您也可以自行撰寫程式碼,但不要動到程式原始碼的開始部分,也就是LCL表單的宣告部分。 不要更改自動產生的inc檔案,請記得,您在專案裡面寫的程式碼,必須同時相容於LCL跟KOL,當使用LCL建置的時候,宣告部分會使用LCL的相關單元檔,專案會變成Win32相容的應用程式,而使用KOL建置的時候,則會使用KOL的相關單元檔,建置出來的則是WinCE相容的應用程式。

重點

為了解決KOL跟LCL對關鍵字的衝突: LCL.SelfKOL.@Self,所以要特別使用Form這個欄位,在LCL裡面,TKOLForm元件的Form屬性,將會回傳Self這個屬性,也就是表單本身的意思,而在KOL裡面Form: PControl則是物件的屬性之一,包含了表單元件。也因為這一點,要變更表單的屬性,就要這麼寫:

Form.Caption := 'Hello!'; 

(原來的寫法,是寫成Caption := 'Hello!';即可,當在使用LCL對本專案進行編譯的時候,這樣是完全沒問題的,但以KOL編譯時則會出錯) 但上述討論的關鍵字Form只能使用到表單這個屬性,無法使用到表單上面的控制項。您要使用子控制項跟表單的事件處理函式時,請依照原來的方式即可,例如: Button1.Caption := 'OK';

Button1Click(Form);

在執行時期動態建立表單

在執行時期,同一個表單是可以建立出多個實體的,只要把表單的屬性”AutoCreate”設定成不要自動建立,然後在需要的時候再透過程式碼來建立表單即可。要動態建立表單,請使用全域函式NewForm1:

TempForm1 := NewForm1( Applet );

要讓這個動作能夠執行,請別在建立表單實體的時候使用單元檔裡面的全域變數來承接建立出來的表單,除非您知道您為何要那麼作。


WinCE

設定

arm-wince target

您需要在您的系統中安裝Win32版本的arm-wince交叉編譯器,以建立WinCE的應用程式,請從這裡下載。

要編譯arm-wince的應用程式,您必須先設定專案的編譯器屬性,請點選選單項目: Project > Compiler options...,點選Code分頁,並把target platform改變為arm-wince,如附圖所示。

附註: 在編譯您的WinCE應用程式時,IDE可能會回報以下的錯誤訊息:

Compiling resource KOL-CE.rc
arm-wince-windres.exe: no resources
KOL.PAS(57901) Error: Error while linking
KOL.PAS(57901) Fatal: There were 1 errors compiling module, stopping

此時,您需要編輯Windows的環境變數PATH,把Win32平台FPC的編譯器路徑加進去。
如果您不知道要加入哪個路徑,請點選Lazarus選單項目: Environment options,然後看compiler path這個欄位的資料就是了。
別變動Lazarus裡面的PATH,離開Lazarus.
用滑鼠右鍵在”我的電腦”圖示上面點擊,選擇目錄裡的’’’內容’’’,再點選內容視窗裡面的進階分頁,再點選環境變數這個按鍵就可以編輯PATH這個環境變數了。

提示與註記

  • 要建立大多數Pocket PC上的全螢幕應用程式,請別變更表單的位置跟大小,如果表單的大小跟位置被變動了,則該表單就會看起來像是有標題欄的對話視窗,當然也包含標題欄的關閉程式按鈕。在MCK裡面把TKOLForm元件的defaultSizedefaultPosition這兩個屬性設定為”True”就能讓表單全螢幕顯示了。

已知的問題

  • 下列兩個元件目前不支援: RichEdit, TrayIcon.
  • 目前只支援gsVertical, gsHorizontal 這兩種panel樣式。

說明文件

  • 您可以從KOL官方網站找到KOL跟MCK的官方文件跟相關資訊: http://kolmck.ru
  • 請務必閱讀MCK目錄裡面的KOLmirrorReadme.txt這個檔案,這是MCK的說明文件。

實際用KOL-CE製作的應用程式

相關連結

歷史與聯繫

請將您遇到的問題透過這個SourceForge的網址進行回報: http://sourceforge.net/projects/kol-ce/