Sign in Join
Wiki copytemporary

KOL-CE/ko: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## 소개
22
33KOL-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).
44
55KOL-CE는 매우 컴팩트한 Win32/WinCE GUI 응용프로그램을 생성하게 해준다.(텅 빈 폼을 가진 프로젝트의 실행 파일을 ~40KB 실행파일이 되게 해준다.)
66
77MCK는 라자루스 IDE에서 KOL-CE 프로젝트를 VISUAL 개발 가능하게 해주는 라자루스 패키지이다.
88
99초기에 KOL-CE는 [[WinCE port|WinCE를]] 위한 KOL 포트로서만 계획되었다. 그러나 이것은 나중에 Win32 기능을 하고 FPC를 부드럽게 동작하도록 결정되었다.오리지널 KOL은 델파이를 위해 만들어 졌고 FPC와는 잘 동작하지 않았다. 오리지널 MCK는 라자루스와 함께 사용될 수 없었다.
1010
1111### 요구사항
1212
1313- 프리파스칼 컴파일러 2.2.0 또는 나중의 Win32용
1414- arm-wince 크로스 컴파일러 2.2.0 또는 나중의 Win32용(\[\[WinCE port\|WinCE\] 개발을 위해)
1515- 라자루스 0.9.26 또는 나중의 Win32용
1616
1717### 지원하는 타겟
1818
1919- 모든 32-비트 윈도우즈: 윈도우즈 95에서 Vista까지
2020- [[WinCE port|Windows CE기반]] 포켓 PC 및 스마트폰
2121
2222## 다운로드
2323
2424최근의 KOL-CE 배포판을 다운로드한다[이곳](http://sourceforge.net/project/showfiles.php?group_id=188451).
2525
2626또한 가장 최근의 KOL-CE소스를 svn에서 다음 링크를 통해 체크할 수 있다: <https://kol-ce.svn.sourceforge.net/svnroot/kol-ce/trunk>
2727
2828## 설치
2929
3030------------------------------------------------------------------------
3131
3232**중요:** KOL-CE 2.80.2 `DisableFakeMethods` 정의는 더이상 필요치 않기 때문에.
3333
3434만약 KOL-CE 2.80.1 또는 옛 버전을 사용한다면, MCK 패키지를 설치하기 전에 라자루스를 `DisableFakeMethods` 정의 **없이** 리빌드 해야한다. 그렇지 않으면 **이벤트 핸들러는 동작하지 않을 것이다**!
3535
3636다음과 같이 한다:
3737
38381. 라자루스 실행.
39392. **Tools \> Configure "Build Lazarus"...**메뉴 아이템 선택
40403. **Quick Build Options**페이지 상에서 **Clean Up + Build all** 선택
41414. **Advanced Build Options**페이지를 열고 **Options**입력 필드에서 `-dDisableFakeMethods`를 **제거한다** .
42425. **Build**버튼을 클릭하여 라자루스를 다시 빌드한다.
4343
4444------------------------------------------------------------------------
4545
4646![](/wiki-images/2/2e/MirrorKOLPackage.png)
4747
48481. KOL-CE 소스를 다운로드하고 파일 시스템상의 임의의 폴더에 저장한다.
49492. 라자루스를 실행하고 **Components \> Load package file**메뉴 아이템을 선택한다. 그리고 **MCK**폴더를 찾아서 **`MirrorKOLPackage.lpk`** 파일을 선택한다.
50503. 패키지 윈도우가 나타날 것이다. **Install**버튼을 누른다.
51514. 라자루스는 MCK패키지를 컴파일하고 IDE는 재시작 할 것이다.
52525. 재시작 후 KOL 탭이 컴포넌트 팔레트에 보일 것이다.
5353
5454![](/wiki-images/d/d1/KOLComponents.png)
5555
5656주의: 만약 팔레트에 모든 KOL 컴포넌트가 보이지 않는다면, 컴포넌트 팔레트의 윈도우를 수직으로 크기 변경해본다. KOL 탬에 두번째 줄의 컴포넌트가 나타날 것이다.(위의 스크린 샷에 보듯이)
5757
5858MCK 패키지 업그레이드는 매우 쉽다. KOL-CE 소스의 새로운 버전을 겹쳐 쓰기만 하면 된다, MCK 패키지를 열고 **Install**버튼을 눌러 패키지를 재 컴파일 한다.
5959
6060## MCK 사용
6161
6262### MCK 프로젝트 생성
6363
6464![](/wiki-images/0/04/MCKForm.png)
6565
66661. 라자루스를 시작하고 **File \> New...**메뉴아이템을 선택한다.
67672. **KOL Application**을 **Project**섹션에서 선택하고 **OK**버튼을 누른다.
68683. KOL 응용프로그램을 위한 새로운 프로젝트가 만들어 질 것이다.
69694. 이 프로젝트를 원하는 이름으로 저장한다.
70705. 당신의 이 새로운 KOL/MCK 프로젝트를 실행한다(파라메터 조정, TKOL 제거... 컴포넡트, 컴파일, 실행, 디버그, 등등) 즐겁게!
7171
7272### 폼 추가
7373
74741. **File \> New...**메뉴아이템 선택
75752. **File** 섹션에 있는 **KOL Form**을 선택하고 **OK**버튼을 누른다.
76763. 새로운 폼을 원하는 이름으로 저장한다.
7777
7878### 코드 작성
7979
8080RTL/FCL/LCL에 있는 이름을 사용하지 마라. 특히 SysUtils, Classes, Forms, 등등. 필요한 모든 것은 KOL, Windows, Messages에서 찾아야 한다. 그리고 아마 스스로 작성해야 할 것이다.(또는 다른 소스에서 복사해오던지). 미러 프로젝트에서 코드를 작성할 때 - 종종이벤트 핸들러에 놓을 수 있다. 원하는 어떤 코드라도 더할 수도 있지만, 미러 LCL 폼 클래스 선언의 첫번째 섹션을 변경하는 것은 피하는 것이 좋다. 그리고 자동-생성된 inc-파일은 변경하지 않는 것이 좋다. 항상 미러 프로젝트에서 작성한 당신의 그 코드는 LCL과 KOL 양쪽에서 모두 맏아들일 수 있어야 한다는 것을 명심하라.. LCL에 의해 - 미러 프로젝트를 컴파일 하는 단계에서 (그리고 이것은 꼭 필요한데 이는 그렇지 않으면 다른 미러 프로젝트를 KOL 프로젝트로 변환하는것이 불가능 하기 때문에). KOL에 의해 - KOL 네임스페이스에서 코드를 컴파일 하는 단계에서.
8181
8282### 중요
8383
8484KOL과 LCL에서 다르게 번역되는 `LCL.Self` 와`KOL.@Self` 단어간의 충돌 문제를 해결하기 위해, 특별한 필드가 소개 되었다. `Form`. LCL에서, `TKOLForm`컴포턴트의 `Form` 프로퍼티는 `Self`를 "returns"한다. 즉, 자체의 폼 객체. 그리고 KOL에서 `Form: PControl`는 결과적으로 폼 객체를 포함하는 오브젝트의 필드이다. 이렇기 때문에 다음과 같은 방법으로폼의 프로퍼티를 정확히 변경할 수 있다:
8585
86-`Form.Caption := 'Hello!'; `
86+``` pascal
87+Form.Caption := 'Hello!';
88+```
8789
8890비록 이전의 Caption := 'Hello!'; 오퍼레이터 형식이, 미러 프로젝트를 KOL로 변환하는 동안 정상적으로 컴파일 하더라도, KOL 환경하에서는 틀린 방법이 될 것이다). 그러나 상기에서 언급한 `Form`이 폼의 프로퍼티에 - 챠일드 컨트롤이 아니다- 접근할 수 있는 유일한 길이다. 차일드 컨트롤과 일반적인 방법으로 폼 이벤트 핸들러에 접근할 수 있다. 예:
8991
90-`Button1.Caption := 'OK';`\
91-`Button1Click(Form);`
92+``` pascal
93+Button1.Caption := 'OK';
94+Button1Click(Form);
95+```
9296
9397### 런타임 폼 생성
9498
9599실행시에 동일한 폼의 몇몇 인스턴스를 생성할 수 있다. 그리고 최소한, 폼을 AutoCreate가 아니게 만들 수 있으며, 필요할 때 프로그래밍으로 만들 수 있다. 글로벌 함수 `NewForm1` (미러 폼 이름과 함께 Form1 를 대치) 를 사용하라, 예를 들어:
96100
97-` NewForm1( TempForm1, Applet );`
101+```text
102+ NewForm1( TempForm1, Applet );
103+```
98104
99105이것을 가능하게 하기 위해, 대화를 통해 유니트에서 생성된 글로벌 변수에 접근하려 하지 마라, 그렇게 하는 이유를 알지 못한다면. 대신 폼 변수를 참조하라.
100106
101107## WinCE
102108
103109#### 설정
104110
105111![arm-wince 타겟](/wiki-images/5/5e/Arm-wince-target.png) WinCE 실행파일을 컴파일 하기 위해 Win32용 arm-wince 크로스 컴파일러를 설치해야 한다. 구하라. [이곳](http://www.freepascal.org/download.var).
106112
107113arm-wince 타겟으로 컴파일하기 위해 **Project \> Compiler options...** 메뉴 아이템에서 프로젝트의 컴파일러 옵션을 연다. **Code** 탭을 열고 타겟 플랫폼을 arm-wince로 변경한다.
108114
109115**주의:** KOL-CE 프로젝트를 WinCE용으로 컴파일 하면 다음의 에러를 받을 수 있다:
110116
111-`Compiling resource KOL-CE.rc`\
112-`arm-wince-windres.exe: no resources`\
113-`KOL.PAS(57901) Error: Error while linking`\
114-`KOL.PAS(57901) Fatal: There were 1 errors compiling module, stopping`\
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+```
115123
116124이런 경우 윈도우즈의 **PATH** 환경변수를 편집해야 하며, win32 fpc 바이너리가 위치한 폴더를 패스에 추가한다.\
117125어떤 경로거 추가되었는지 확인하기 위해서는 라자루스의 **Environment options**으로 가서 컴파일러 경로를 보라\
118126**Quit Lazarus before editing PATH**.\
119127**PATH** 변수를 편집하기 위해서는 **내 컴퓨터** 아이콘을 클릭하고 **고급** 탭으로 가서 **환경 변수** 버튼을 클릭한다.
120128
121129### 힌트와 주의
122130
123131- 대부분의 포켓 PC 프로그램이 그렇듯이 폼을 풀스크린으로 만들기 위해서는 폼의 위치와 크기를 변경할 필요가 없다. 만약 폼 크기나 위치가 변한면 폼은 켭션이 있는 다이얼로그와 닫기 버튼과 같이 보일 것이다. MCK에서 TKOLForm의 **defaultSize**와 **defaultPosition**을 True로 설정하여 폼을 풀 스크린으로 만든다.
124132
125133#### 알려진 사항들
126134
127135- 다음 컴포넌트는 지원하지 않는다: RichEdit
128136- 투명과 더블 버퍼링은 지원하지 않는다.
129137- gsVertical, gsHorizontal 그래디언트 패널 스타일만 지원된다.
130138- 수평 문자 정렬은 한줄 편집 컨트롤에서는 동작하지 않는다. 텍스트 정렬이 필요하면 메모를 사용하라.
131139- 수직 텍스트 정렬은 패널과 레이블에서는 동작하지 않는다.
132140
133141## 문서
134142
135143- 문서와 정보를 위해서는 공식 KOL&MCK 웹사이트를 방문하라: <http://kolmck.ru>
136144- MCK 폴더 내에 있는 **KOLmirrorReadme.txt** 파일내의 MCK 문서를 읽어라
137145
138146## 실제 프로그램에서의 KOL-CE
139147
140148- [패스워드 매니저 XP 모바일](http://www.cp-lab.com/windows-mobile.html)
141149- [ChARMeD 디스어셈블러](http://blog.carolos.za.net/2007/05/charmed-for-pocket-pc-beta-030.html)
142150- [WMWifiRouter](http://www.jongma.org/WMWifiRouter/)
143151
144152## 더 볼 것
145153
146154- [공식 KOL&MCK 웹 사이트](http://f0460945.xsph.ru/rindex.htm)
147155- 소스포지의 KOL-CE 페이지 <http://sourceforge.net/projects/kol-ce/>
148156- [[WinCE port|프리 파스칼의 WinCE 포트]]
149157- [[Windows CE Interface/ko|Windows CE 인터페이스]]
150158- [[Windows CE Development Notes]]
151159
152160## 연락
153161
154162버그를 보고하고, 패치를 제출하고 질문하는 것은 소스포지의 프로젝트 페이지에서 한다: <http://sourceforge.net/projects/kol-ce/>
155163
156164---
157165*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).*

Back to history