Delphi DLL 폼에서 VCL 폼 스타일 적용하기
2019.10.28 13:28
델파이에서는 여러 가지 스타일들을 제공하여 다양하고 멋진 윈도우 화면을 작성할 수 있으며 새로운 스타일 타입을 생성하여 적용 할 수 있는 VCL Styles을 지원합니다.
하지만 DLL을 작성하다보면 어플리케이션의 옵션중에 STYLE을 적용하기 위한 Apperance 항목이 없는걸을 확인하실 수 있습니다.
그래서 폼을 라이브러리(DLL)로 작성하시는 경우 프로그램과 동일하게 스타일을 주는 방법에 대해서 정리해 보도록 하겠습니다.
DLL 프로젝트 작성및 열기
1. 기존의 dll 프로젝트가 있으신 경우는 Open 해주시고 없으시면 New DLL 로 새로운 프로젝트를 생성합니다.
2. 새로운 프로젝트를 작성하신 경우 File > New > Other..> Indivisual Files에서 About Box를 선택합니다.
3. 윈도우프로그래밍 교육에서 작성한 PAboutBox.dll을 사용하겠습니다.
4. 아래와 같이 화면을 표시하는 루틴을 선언하고 구현합니다.
type TAboutBox = class(TForm) Panel1: TPanel; ProgramIcon: TImage; ProductName: TLabel; Version: TLabel; Copyright: TLabel; Comments: TLabel; OKButton: TButton; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;
var AboutBox: TAboutBox;
procedure Display_About; export; stdcall;
implementation procedure Display_About; var Abox:TAboutBox; begin Abox := TAboutBox.Create(nil); try ABox.ShowModal; finally Abox.Free; end; end; |
4. 프로젝트 파일에(.dpr) 에 exports로 Display_About 루틴을 등록합니다.(여기까지는 일반 dll 작성과 동일합니다.)
Resource 추가하기
5. Project>Resources and Images..를 선택합니다.
6. 아래와 같이 원하시는 스타일 파일을 추가하고 Resource Type을 수동으로 VCLSTYLE로 설정합니다.
(C:\Users\Public\Documents\Embarcadero\Studio\20.0\Styles 폴더 밑에 있는 스타일들을 선택합니다.)
6. 폼의 OnCreate 이벤트 핸들러에서 다음과 같이 코딩하여 스타일을 적용합니다.
procedure TAboutBox.FormCreate(Sender: TObject); begin TStyleManager.TrySetStyle('windows10 purple'); end; |
7. uses절에 vcl.Themes,vcl.Styles 추가합니다.
8. 프로젝트 소스(.dpr)를 열고 다음과 같이 코드를 추가합니다.
{$R <PropertyGroup Condition="'$(Base)'!=''"> <VCL_Custom_Styles>"Windows10 purple|VCLSTYLE|$(PUBLIC)\Documents\Embarcadero\Studio\20.0\Styles\Windows10purple.vsf"</VCL_Custom_Styles>} exports Display_About; begin end. |
9. 프로젝트를 Build 한 후 응용프로그램에서 Display_About 루틴을 동적 또는 정적으로 호출하여 테스트합니다.
10. 아래와 같이 스타일이 적용된 것을 확인 하실 수 있습니다.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) | 관리자 | 2021.01.19 | 17831 |
공지 | [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) | 관리자 | 2020.11.16 | 16187 |
공지 | [10.4 시드니] What's NEW! 신기능 자세히 보기 | 관리자 | 2020.05.27 | 18841 |
공지 | RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 | 관리자 | 2018.10.23 | 24414 |
공지 | [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] | 관리자 | 2017.02.06 | 25794 |
공지 | [전체 목록] 이 달의 기술자료 & 기술레터 | 관리자 | 2017.02.06 | 21152 |
공지 | RAD스튜디오(델파이, C++빌더) - 시작하기 [1] | 관리자 | 2015.06.30 | 41744 |
공지 | RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) | 험프리 | 2014.01.16 | 177044 |
5 | NEW! 델파이 오브젝트 파스칼 스타일 가이드 | 관리자 | 2021.05.04 | 531 |
» | DLL 폼에서 VCL 폼 스타일 적용하기 | 김원경 | 2019.10.28 | 5862 |
3 | [기술문서] Delphi 코딩 스타일과 아키텍처(Delphi 2009의 언어 기능 리뷰) | 관리자 | 2014.09.16 | 1540 |
2 | [웹 세미나] RAD 따라잡기: 윈도우8 스타일 | 관리자 | 2012.11.27 | 4505 |
1 | David I의 31 XE3 퀵 비디오 - 윈도우8 스타일 사용하기 | 관리자 | 2012.10.08 | 6164 |