델파이에서는 여러 가지 스타일들을 제공하여 다양하고 멋진 윈도우 화면을 작성할 수 있으며 새로운 스타일 타입을 생성하여 적용 할 수 있는 VCL Styles을 지원합니다.

https://tech.devgear.co.kr/index.php?mid=delphi_news&search_keyword=%EC%8A%A4%ED%83%80%EC%9D%BC&search_target=title_content&page=6&document_srl=713

 

하지만 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 폴더 밑에 있는 스타일들을 선택합니다.) 

rc1.png

 

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. 아래와 같이 스타일이 적용된 것을 확인 하실 수 있습니다.

 

rc2.png

 

       

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 17802
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 16167
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 18815
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 24389
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 25774
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 21130
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 41712
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 177021
163 델파이 튜토리얼 자습서 이용 안내 관리자 2014.09.01 71957
162 이 달의 기술자료 - 2014년 11월 험프리 2014.10.13 54144
161 이 달의 기술자료 - 2014년 12월 file 험프리 2014.11.26 32483
160 델파이XE2의 VCL Styles 활용하기 박병일 2012.01.19 15382
159 이 달의 기술자료 - 2015년 02월 file 험프리 2015.01.29 15065
158 [따라하기] 도서대여 프로그램 만들기(VCL, DB프로그래밍) [2] file 험프리 2017.01.19 10549
157 VCL Style Util 박병일 2012.01.11 10288
156 파이어 몽키 이퀼라이저 데모 동영상 박병일 2012.02.06 10066
155 파이어몽키를 이용해서 아이폰앱을 개발할때 스타일 바꾸기 관리자 2012.04.19 8982
154 [XE3] VCL 이나 FireMonkey 폼을 Metropolis UI로 컨버팅하는 1분 동영상 관리자 2012.09.12 6920
153 파이어몽키 모바일에서 사용자 파일 배포 및 사용 file 험프리 2013.12.27 6241
152 David I의 31 XE3 퀵 비디오 - 윈도우8 스타일 사용하기 관리자 2012.10.08 6164
151 [C++빌더 XE3 비디오 31] 기존 C++ VCL과 파이어몽키 앱에서 메트로폴리스 UI 사용하기 관리자 2013.01.08 6089
150 인터베이스(InterBase) 2020 버전을 사용해야 하는 5 가지 이유 file 김원경 2020.04.09 6038
149 [따라하기] 건강데이터 수집 및 기록 시스템 #1 - BLE 기반 스마트 체중계에서 실시간 데이터 받기 [1] Humphery 2015.10.02 5889
» DLL 폼에서 VCL 폼 스타일 적용하기 file 김원경 2019.10.28 5861
147 RAD Studio, Delphi 그리고 C++빌더 로드맵 - 한글(2014년 3월) file Humphery 2014.03.05 5570
146 RAD Studio 프리미엄 스타일 사용방법(VCL / FMX) [1] Humphery 2014.10.10 5420
145 [델파이 문법] 문법 요소 #14 file 관리자 2012.12.17 5373