【Lazarus】폼에 배치 가능한 에クス플로러 스타일 기능, Monaco Editor, 탭 브라우저 등을 포함하는 컴포넌트 세트 "CX
요약
Lazarus(Free Pascal)용 확장 컴포넌트 세트인 "CX Components"가 소개되었습니다. 이 세트는 에クスプローラー 스타일의 파일 조작 기능, Monaco Editor 기반 고급 에디터, 탭 브라우저 등 실용적인 UI 부품들을 제공합니다. WebView2를 활용하여 모던 웹 기술을 통합함으로써 애플리케이션 개발에 도움을 주는 것이 특징입니다.
핵심 포인트
- 에クス플로러 스타일의 트리뷰와 파일 목록 기능을 컴포넌트로 구현.
- WebView2를 이용해 Monaco Editor 및 탭 브라우저 등 웹 기술 통합 가능.
- Markdown 미리보기, Firefox 스타일 북마크 관리 등 실용적인 부품 구성.
- Lazarus IDE 내에서 드래그 앤 드롭 방식으로 사용 가능한 컴포넌트 세트.
안녕하세요! 저는 Delphi와 Lazarus를 매우 좋아하고 평소 애용해 왔지만, 일본에서는 정보나 사용자가 적어 사용하고 싶은 편리한 도구나 부품을 찾기 어려운 경우가 많았습니다.
그래서 '없으면 직접 만들자'라는 생각으로, Lazarus (Free Pascal)용 확장 컴포넌트 세트인 "CX Components"를 직접 제작했습니다.
이 컴포넌트들은 폼에 올려놓는 것만으로 Windows의 에クスプローラー와 같은 파일 조작 기능, 탭형 브라우저, Monaco Editor나 SynEdit을 활용한 고급 에디터, Markdown 미리보기, Firefox 스타일 북마크 관리 등 실용적인 부품들로 구성되어 있습니다.
- 사전 설명드리자면 저는 일본인입니다.
- 모든 것은 바이브 코딩(vibe coding)으로 작성되었습니다.
저는 벽치기(아이디어 구체화), 사양 결정, AI가 생성한 설계서 검토, 소스 코드 검토 과정을 거쳤습니다. - AI와 바이브 코딩을 활용하면 며칠 만에 이 정도 수준의 결과물을 만들 수 있습니다.
이 컴포넌트 세트는 Lazarus IDE 내 패널( [CX] 탭)에 추가되어 드래그 앤 드롭으로 폼에 배치하여 사용할 수 있는 구성 요소들입니다.
주요 특징은 다음과 같습니다:
- 풍부한 UI 부품: 트리뷰(TreeView), 리스트뷰(ListView), 탭 컨트롤(TabControl), 사이드바(Sidebar), 각종 에디터 등이 갖춰져 있습니다. -
- 모던 웹 기술과의 융합: WebView2를 활용하여 Monaco Editor나 Markdown 미리보기, 탭 브라우저 기능을 Lazarus 애플리케이션에 통합할 수 있습니다. -
- 실용적인 기능: 각 부품의 사용 설명서와 설계서까지 공개하고 있습니다.
| 부품명 | 개요 및 특징 |
|---|---|
| TCTreeView | 에クスプローラー 좌측과 동일한 폴더 트리 |
| TCListView | 에クスプローラー 우측과 동일한 파일 목록 |
| TCSynEdit | 파일 입출력, VS Code 스타일 색상 구성(Color Scheme), 확장자별 색상 구분 (Markdown 대응), 마우스 오른쪽 버튼 메뉴가 추가된 SynEdit |
| TCCheckListBox | 선택을 하나로만 제한할 수 있는 TCheckListBox |
| TCGroupBox / TCCheckGroupBox | 내부 부품이 사라지지 않는 그룹 박스 및 체크박스가 포함된 헤더 그룹 박스 |
| TCSideBar | Edge 브라우저와 같은 아이콘 목록과 접었다 펼칠 수 있는 패널 |
| TCPageControl / TCTitleBar | 브라우저 스타일의 탭과, 탭을 배치할 수 있는 타이틀 바 |
| TCTabBrowser | WebView2를 활용한 탭형 웹 브라우저 |
| TCMonacoEditor | WebView2 + Monaco Editor를 이용한 고성능 에디터 (탭/미리보기/검색/인쇄 기능 내장) |
| TCsEditor | TCSynEdit을 기반으로 한 멀티 탭 에디터 (미니맵, 탭 분리, 검색/바꾸기 다이얼로그 완비) |
| TCPreview | 에디터와 독립적으로 배치 가능하며, 여러 에디터에서 공유할 수 있는 Markdown/코드 미리보기 및 인쇄(PDF 저장) 기능 |
| TCBookmark | Firefox 스타일의 북마크 관리 기능 (브라우저나 에디터와 연동) |
- Lazarus: 5.0 이상 권장 (TCSynEdit, TCsEditor, TCPreview). 기타 부품은 4.8에서도 작동합니다. -
- FPC (Free Pascal Compiler): 3.2.2 -
- OS: Windows 11 (64비트) ※현재는 Windows 버전만 지원합니다.
전제 패키지 도입
-
WebView4Delphi의 Lazarus용 패키지를 도입해야 합니다.
-
ATFlatControls (atflatcontrols_package)를 온라인 패키지 매니저에서 설치합니다.
-
※SynEdit은 Lazarus에 기본적으로 포함되어 있습니다.
패키지 컴파일
packages\cx.lpk파일을 Lazarus에서 열고, '컴파일'을 실행합니다.
디자인 시 패키지 설치
-
packages\cxdsgn.lpk를 열고, '설치'를 실행합니다 (IDE가 재구성됩니다). -
IDE를 재시작하면, 팔레트의 [CX] 탭에 각 부품이 표시됩니다.
-
폼에 부품을 배치하는 것만으로 프로젝트의 필요 패키지에 cx가 자동으로 추가됩니다 (cxdsgn은 애플리케이션에는 불필요합니다).
TCTabBrowser, TCMonacoEditor, TCBookmark, TCPreview를 사용하는 앱에서는 EXE와 같은 폴더에 설정 파일(WebView2.ini)이나 WebView2Loader.dll, monaco 폴더, preview 폴더를 배치합니다.
일본에서는 보기 드문 Lazarus/Delphi이지만, 데스크톱 애플리케이션을 빠르게 네이티브로 개발할 수 있는 매우 강력한 도구입니다. 마찬가지로 Lazarus를 즐기고 있거나 편리한 컴포넌트를 찾고 계신 분들께 도움이 되기를 바랍니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기