델파이에서는 여러 가지 스타일들을 제공하여 다양하고 멋진 윈도우 화면을 작성할 수 있으며 새로운 스타일 타입을 생성하여 적용 할 수 있는 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 15450
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13963
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16500
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22057
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18924
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39259
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174726
1183 RAD스튜디오 개발환경(IDE) 사용법: 파이어몽키 코스북 3장 file 관리자 2014.07.09 5832
1182 C++의 창시자 "비얀 스트로스트럽"이 직접 진행하는 CodeRage7 세션! 관리자 2012.11.30 5830
1181 Hotfix 2 for C++Builder XE2, Delphi XE2 and RAD Studio XE2 is now available 박병일 2011.12.22 5823
1180 [따라하기] 도서대여 프로그램 만들기 - 1, 분석, 설계 [4] file 험프리 2017.01.26 5814
» DLL 폼에서 VCL 폼 스타일 적용하기 file 김원경 2019.10.28 5809
1178 [동영상 강의] 델파이 기본 교육_18.부서관리 관리자 2012.08.03 5809
1177 David I의 31일 동영상(한글자막) - C++빌더로 만든 윈도우와 맥 앱에서 플랫폼 서비스와 OS정보 사용하기 관리자 2013.04.17 5807
1176 [C++mas] C++빌더 코드 64-bit로 마이그레이션하기 관리자 2012.12.21 5803
1175 [따라하기] 건강데이터 수집 및 기록 시스템 #1 - BLE 기반 스마트 체중계에서 실시간 데이터 받기 [1] Humphery 2015.10.02 5797
1174 [델파이 문법] 문법 요소 #7 file 관리자 2012.10.29 5790
1173 David I의 31일 동영상(한글자막) - 3D앱 만들기(윈도우&맥)(델파이 동일 적용 가능) 관리자 2013.04.23 5776
1172 DBGrid 에서 GraphicsField 보여주기 박병일 2011.12.22 5774
1171 20120906 RAD Studio XE3 월드투어-서울 세미나 발표자료입니다. [1] file 관리자 2012.09.07 5773
1170 David I의 31일 동영상(한글자막) - 나만의 첫 C++파이어몽키 애플리케이션 관리자 2013.03.12 5765
1169 [C++mas] C++빌더XE3로 나만의 첫 번째 C++11 애플리케이션 만들기 관리자 2012.12.21 5759
1168 델파이/C++빌더 XE3 수정된 버그 리스트가 올라왔습니다. 관리자 2012.10.23 5758
1167 RAD Studio XE3, 델파이XE3, C++빌더XE3 용 핫픽스(Hotfix)4가 나왔습니다. 관리자 2012.10.30 5709
1166 이 달의 기술자료 - 2015년 04월 험프리 2015.03.26 5677
1165 David I의 31일 동영상(한글자막) - 카메라, 텍스쳐를 사용하는 3D앱(윈도우&맥용)(델파이 동일 적용 가능) 관리자 2013.04.24 5651
1164 David I의 31일 동영상(한글자막) - 모션과 위치정보 센서 컴포넌트를 C++빌더XE3 윈도우&맥 용 앱에서 사용하기(델파이 동일 적용 가능) 관리자 2013.04.19 5648