KOL-CE/ko: what changed
Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | 1 | ## 소개 | |
| 2 | 2 | ||
| 3 | 3 | KOL-CE는 Vladimir Kladov가 개발한 KOL&MCK의 프리 파스칼/라자루스 포트이다(http://f0460945.xsph.ru/rindex.htm). KOL-CE는 Yury Sidorov가 개발하였으며 다음 라이선스하에 배포된다[wxWindows Library Licence](http://www.opensource.org/licenses/wxwindows.php). | |
| 4 | 4 | ||
| 5 | 5 | KOL-CE는 매우 컴팩트한 Win32/WinCE GUI 응용프로그램을 생성하게 해준다.(텅 빈 폼을 가진 프로젝트의 실행 파일을 ~40KB 실행파일이 되게 해준다.) | |
| 6 | 6 | ||
| 7 | 7 | MCK는 라자루스 IDE에서 KOL-CE 프로젝트를 VISUAL 개발 가능하게 해주는 라자루스 패키지이다. | |
| 8 | 8 | ||
| 9 | 9 | 초기에 KOL-CE는 [[WinCE port|WinCE를]] 위한 KOL 포트로서만 계획되었다. 그러나 이것은 나중에 Win32 기능을 하고 FPC를 부드럽게 동작하도록 결정되었다.오리지널 KOL은 델파이를 위해 만들어 졌고 FPC와는 잘 동작하지 않았다. 오리지널 MCK는 라자루스와 함께 사용될 수 없었다. | |
| 10 | 10 | ||
| 11 | 11 | ### 요구사항 | |
| 12 | 12 | ||
| 13 | 13 | - 프리파스칼 컴파일러 2.2.0 또는 나중의 Win32용 | |
| 14 | 14 | - arm-wince 크로스 컴파일러 2.2.0 또는 나중의 Win32용(\[\[WinCE port\|WinCE\] 개발을 위해) | |
| 15 | 15 | - 라자루스 0.9.26 또는 나중의 Win32용 | |
| 16 | 16 | ||
| 17 | 17 | ### 지원하는 타겟 | |
| 18 | 18 | ||
| 19 | 19 | - 모든 32-비트 윈도우즈: 윈도우즈 95에서 Vista까지 | |
| 20 | 20 | - [[WinCE port|Windows CE기반]] 포켓 PC 및 스마트폰 | |
| 21 | 21 | ||
| 22 | 22 | ## 다운로드 | |
| 23 | 23 | ||
| 24 | 24 | 최근의 KOL-CE 배포판을 다운로드한다[이곳](http://sourceforge.net/project/showfiles.php?group_id=188451). | |
| 25 | 25 | ||
| 26 | 26 | 또한 가장 최근의 KOL-CE소스를 svn에서 다음 링크를 통해 체크할 수 있다: <https://kol-ce.svn.sourceforge.net/svnroot/kol-ce/trunk> | |
| 27 | 27 | ||
| 28 | 28 | ## 설치 | |
| 29 | 29 | ||
| 30 | 30 | ------------------------------------------------------------------------ | |
| 31 | 31 | ||
| 32 | 32 | **중요:** KOL-CE 2.80.2 `DisableFakeMethods` 정의는 더이상 필요치 않기 때문에. | |
| 33 | 33 | ||
| 34 | 34 | 만약 KOL-CE 2.80.1 또는 옛 버전을 사용한다면, MCK 패키지를 설치하기 전에 라자루스를 `DisableFakeMethods` 정의 **없이** 리빌드 해야한다. 그렇지 않으면 **이벤트 핸들러는 동작하지 않을 것이다**! | |
| 35 | 35 | ||
| 36 | 36 | 다음과 같이 한다: | |
| 37 | 37 | ||
| 38 | 38 | 1. 라자루스 실행. | |
| 39 | 39 | 2. **Tools \> Configure "Build Lazarus"...**메뉴 아이템 선택 | |
| 40 | 40 | 3. **Quick Build Options**페이지 상에서 **Clean Up + Build all** 선택 | |
| 41 | 41 | 4. **Advanced Build Options**페이지를 열고 **Options**입력 필드에서 `-dDisableFakeMethods`를 **제거한다** . | |
| 42 | 42 | 5. **Build**버튼을 클릭하여 라자루스를 다시 빌드한다. | |
| 43 | 43 | ||
| 44 | 44 | ------------------------------------------------------------------------ | |
| 45 | 45 | ||
| 46 | 46 |  | |
| 47 | 47 | ||
| 48 | 48 | 1. KOL-CE 소스를 다운로드하고 파일 시스템상의 임의의 폴더에 저장한다. | |
| 49 | 49 | 2. 라자루스를 실행하고 **Components \> Load package file**메뉴 아이템을 선택한다. 그리고 **MCK**폴더를 찾아서 **`MirrorKOLPackage.lpk`** 파일을 선택한다. | |
| 50 | 50 | 3. 패키지 윈도우가 나타날 것이다. **Install**버튼을 누른다. | |
| 51 | 51 | 4. 라자루스는 MCK패키지를 컴파일하고 IDE는 재시작 할 것이다. | |
| 52 | 52 | 5. 재시작 후 KOL 탭이 컴포넌트 팔레트에 보일 것이다. | |
| 53 | 53 | ||
| 54 | 54 |  | |
| 55 | 55 | ||
| 56 | 56 | 주의: 만약 팔레트에 모든 KOL 컴포넌트가 보이지 않는다면, 컴포넌트 팔레트의 윈도우를 수직으로 크기 변경해본다. KOL 탬에 두번째 줄의 컴포넌트가 나타날 것이다.(위의 스크린 샷에 보듯이) | |
| 57 | 57 | ||
| 58 | 58 | MCK 패키지 업그레이드는 매우 쉽다. KOL-CE 소스의 새로운 버전을 겹쳐 쓰기만 하면 된다, MCK 패키지를 열고 **Install**버튼을 눌러 패키지를 재 컴파일 한다. | |
| 59 | 59 | ||
| 60 | 60 | ## MCK 사용 | |
| 61 | 61 | ||
| 62 | 62 | ### MCK 프로젝트 생성 | |
| 63 | 63 | ||
| 64 | 64 |  | |
| 65 | 65 | ||
| 66 | 66 | 1. 라자루스를 시작하고 **File \> New...**메뉴아이템을 선택한다. | |
| 67 | 67 | 2. **KOL Application**을 **Project**섹션에서 선택하고 **OK**버튼을 누른다. | |
| 68 | 68 | 3. KOL 응용프로그램을 위한 새로운 프로젝트가 만들어 질 것이다. | |
| 69 | 69 | 4. 이 프로젝트를 원하는 이름으로 저장한다. | |
| 70 | 70 | 5. 당신의 이 새로운 KOL/MCK 프로젝트를 실행한다(파라메터 조정, TKOL 제거... 컴포넡트, 컴파일, 실행, 디버그, 등등) 즐겁게! | |
| 71 | 71 | ||
| 72 | 72 | ### 폼 추가 | |
| 73 | 73 | ||
| 74 | 74 | 1. **File \> New...**메뉴아이템 선택 | |
| 75 | 75 | 2. **File** 섹션에 있는 **KOL Form**을 선택하고 **OK**버튼을 누른다. | |
| 76 | 76 | 3. 새로운 폼을 원하는 이름으로 저장한다. | |
| 77 | 77 | ||
| 78 | 78 | ### 코드 작성 | |
| 79 | 79 | ||
| 80 | 80 | RTL/FCL/LCL에 있는 이름을 사용하지 마라. 특히 SysUtils, Classes, Forms, 등등. 필요한 모든 것은 KOL, Windows, Messages에서 찾아야 한다. 그리고 아마 스스로 작성해야 할 것이다.(또는 다른 소스에서 복사해오던지). 미러 프로젝트에서 코드를 작성할 때 - 종종이벤트 핸들러에 놓을 수 있다. 원하는 어떤 코드라도 더할 수도 있지만, 미러 LCL 폼 클래스 선언의 첫번째 섹션을 변경하는 것은 피하는 것이 좋다. 그리고 자동-생성된 inc-파일은 변경하지 않는 것이 좋다. 항상 미러 프로젝트에서 작성한 당신의 그 코드는 LCL과 KOL 양쪽에서 모두 맏아들일 수 있어야 한다는 것을 명심하라.. LCL에 의해 - 미러 프로젝트를 컴파일 하는 단계에서 (그리고 이것은 꼭 필요한데 이는 그렇지 않으면 다른 미러 프로젝트를 KOL 프로젝트로 변환하는것이 불가능 하기 때문에). KOL에 의해 - KOL 네임스페이스에서 코드를 컴파일 하는 단계에서. | |
| 81 | 81 | ||
| 82 | 82 | ### 중요 | |
| 83 | 83 | ||
| 84 | 84 | KOL과 LCL에서 다르게 번역되는 `LCL.Self` 와`KOL.@Self` 단어간의 충돌 문제를 해결하기 위해, 특별한 필드가 소개 되었다. `Form`. LCL에서, `TKOLForm`컴포턴트의 `Form` 프로퍼티는 `Self`를 "returns"한다. 즉, 자체의 폼 객체. 그리고 KOL에서 `Form: PControl`는 결과적으로 폼 객체를 포함하는 오브젝트의 필드이다. 이렇기 때문에 다음과 같은 방법으로폼의 프로퍼티를 정확히 변경할 수 있다: | |
| 85 | 85 | ||
| 86 | - | ||
| 86 | + | ``` pascal | |
| 87 | + | Form.Caption := 'Hello!'; | |
| 88 | + | ``` | |
| 87 | 89 | ||
| 88 | 90 | 비록 이전의 Caption := 'Hello!'; 오퍼레이터 형식이, 미러 프로젝트를 KOL로 변환하는 동안 정상적으로 컴파일 하더라도, KOL 환경하에서는 틀린 방법이 될 것이다). 그러나 상기에서 언급한 `Form`이 폼의 프로퍼티에 - 챠일드 컨트롤이 아니다- 접근할 수 있는 유일한 길이다. 차일드 컨트롤과 일반적인 방법으로 폼 이벤트 핸들러에 접근할 수 있다. 예: | |
| 89 | 91 | ||
| 90 | - | ||
| 91 | - | ||
| 92 | + | ``` pascal | |
| 93 | + | Button1.Caption := 'OK'; | |
| 94 | + | Button1Click(Form); | |
| 95 | + | ``` | |
| 92 | 96 | ||
| 93 | 97 | ### 런타임 폼 생성 | |
| 94 | 98 | ||
| 95 | 99 | 실행시에 동일한 폼의 몇몇 인스턴스를 생성할 수 있다. 그리고 최소한, 폼을 AutoCreate가 아니게 만들 수 있으며, 필요할 때 프로그래밍으로 만들 수 있다. 글로벌 함수 `NewForm1` (미러 폼 이름과 함께 Form1 를 대치) 를 사용하라, 예를 들어: | |
| 96 | 100 | ||
| 97 | - | ||
| 101 | + | ```text | |
| 102 | + | NewForm1( TempForm1, Applet ); | |
| 103 | + | ``` | |
| 98 | 104 | ||
| 99 | 105 | 이것을 가능하게 하기 위해, 대화를 통해 유니트에서 생성된 글로벌 변수에 접근하려 하지 마라, 그렇게 하는 이유를 알지 못한다면. 대신 폼 변수를 참조하라. | |
| 100 | 106 | ||
| 101 | 107 | ## WinCE | |
| 102 | 108 | ||
| 103 | 109 | #### 설정 | |
| 104 | 110 | ||
| 105 | 111 |  WinCE 실행파일을 컴파일 하기 위해 Win32용 arm-wince 크로스 컴파일러를 설치해야 한다. 구하라. [이곳](http://www.freepascal.org/download.var). | |
| 106 | 112 | ||
| 107 | 113 | arm-wince 타겟으로 컴파일하기 위해 **Project \> Compiler options...** 메뉴 아이템에서 프로젝트의 컴파일러 옵션을 연다. **Code** 탭을 열고 타겟 플랫폼을 arm-wince로 변경한다. | |
| 108 | 114 | ||
| 109 | 115 | **주의:** KOL-CE 프로젝트를 WinCE용으로 컴파일 하면 다음의 에러를 받을 수 있다: | |
| 110 | 116 | ||
| 111 | - | ||
| 112 | - | ||
| 113 | - | ||
| 114 | - | ||
| 117 | + | ```text | |
| 118 | + | Compiling resource KOL-CE.rc | |
| 119 | + | arm-wince-windres.exe: no resources | |
| 120 | + | KOL.PAS(57901) Error: Error while linking | |
| 121 | + | KOL.PAS(57901) Fatal: There were 1 errors compiling module, stopping | |
| 122 | + | ``` | |
| 115 | 123 | ||
| 116 | 124 | 이런 경우 윈도우즈의 **PATH** 환경변수를 편집해야 하며, win32 fpc 바이너리가 위치한 폴더를 패스에 추가한다.\ | |
| 117 | 125 | 어떤 경로거 추가되었는지 확인하기 위해서는 라자루스의 **Environment options**으로 가서 컴파일러 경로를 보라\ | |
| 118 | 126 | **Quit Lazarus before editing PATH**.\ | |
| 119 | 127 | **PATH** 변수를 편집하기 위해서는 **내 컴퓨터** 아이콘을 클릭하고 **고급** 탭으로 가서 **환경 변수** 버튼을 클릭한다. | |
| 120 | 128 | ||
| 121 | 129 | ### 힌트와 주의 | |
| 122 | 130 | ||
| 123 | 131 | - 대부분의 포켓 PC 프로그램이 그렇듯이 폼을 풀스크린으로 만들기 위해서는 폼의 위치와 크기를 변경할 필요가 없다. 만약 폼 크기나 위치가 변한면 폼은 켭션이 있는 다이얼로그와 닫기 버튼과 같이 보일 것이다. MCK에서 TKOLForm의 **defaultSize**와 **defaultPosition**을 True로 설정하여 폼을 풀 스크린으로 만든다. | |
| 124 | 132 | ||
| 125 | 133 | #### 알려진 사항들 | |
| 126 | 134 | ||
| 127 | 135 | - 다음 컴포넌트는 지원하지 않는다: RichEdit | |
| 128 | 136 | - 투명과 더블 버퍼링은 지원하지 않는다. | |
| 129 | 137 | - gsVertical, gsHorizontal 그래디언트 패널 스타일만 지원된다. | |
| 130 | 138 | - 수평 문자 정렬은 한줄 편집 컨트롤에서는 동작하지 않는다. 텍스트 정렬이 필요하면 메모를 사용하라. | |
| 131 | 139 | - 수직 텍스트 정렬은 패널과 레이블에서는 동작하지 않는다. | |
| 132 | 140 | ||
| 133 | 141 | ## 문서 | |
| 134 | 142 | ||
| 135 | 143 | - 문서와 정보를 위해서는 공식 KOL&MCK 웹사이트를 방문하라: <http://kolmck.ru> | |
| 136 | 144 | - MCK 폴더 내에 있는 **KOLmirrorReadme.txt** 파일내의 MCK 문서를 읽어라 | |
| 137 | 145 | ||
| 138 | 146 | ## 실제 프로그램에서의 KOL-CE | |
| 139 | 147 | ||
| 140 | 148 | - [패스워드 매니저 XP 모바일](http://www.cp-lab.com/windows-mobile.html) | |
| 141 | 149 | - [ChARMeD 디스어셈블러](http://blog.carolos.za.net/2007/05/charmed-for-pocket-pc-beta-030.html) | |
| 142 | 150 | - [WMWifiRouter](http://www.jongma.org/WMWifiRouter/) | |
| 143 | 151 | ||
| 144 | 152 | ## 더 볼 것 | |
| 145 | 153 | ||
| 146 | 154 | - [공식 KOL&MCK 웹 사이트](http://f0460945.xsph.ru/rindex.htm) | |
| 147 | 155 | - 소스포지의 KOL-CE 페이지 <http://sourceforge.net/projects/kol-ce/> | |
| 148 | 156 | - [[WinCE port|프리 파스칼의 WinCE 포트]] | |
| 149 | 157 | - [[Windows CE Interface/ko|Windows CE 인터페이스]] | |
| 150 | 158 | - [[Windows CE Development Notes]] | |
| 151 | 159 | ||
| 152 | 160 | ## 연락 | |
| 153 | 161 | ||
| 154 | 162 | 버그를 보고하고, 패치를 제출하고 질문하는 것은 소스포지의 프로젝트 페이지에서 한다: <http://sourceforge.net/projects/kol-ce/> | |
| 155 | 163 | ||
| 156 | 164 | --- | |
| 157 | 165 | *From the Free Pascal wiki, page "KOL-CE/ko", as it stood on 2021-04-29 after a change by Seenkao, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).* |
