델파이에서는 여러 가지 스타일들을 제공하여 다양하고 멋진 윈도우 화면을 작성할 수 있으며 새로운 스타일 타입을 생성하여 적용 할 수 있는 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 25153
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 23466
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 25448
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 31364
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 32355
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 27787
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 48839
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 185812
1063 [개발팁 시리즈] 델파이/C++빌더 VCL 애플리케이션을 개발한다면? 꼭 확인하세요! 관리자 2019.11.20 540
1062 주요 OS 시장 점유율 - 윈도우와 안드로이드! file 관리자 2019.11.19 679
1061 윈도우 버전 점유율 변화: 2009년부터 2019년 현재까지! file 관리자 2019.11.18 456
1060 [델파이 샘플 코드] 안드로이드, iOS, OSX, 윈도우, 리눅스, HTML5 관리자 2019.11.13 729
1059 FCM 전송 구헌혀기 - 앱 서버 프로토콜 사용 메시지 전송 험프리 2019.11.08 1224
1058 [고객사례-게임, 델파이] Rise of Legions 관리자 2019.11.08 878
1057 [데모 영상] 델파이 프로젝트에 구글 시트 연동하기 (엔터프라이즈 커넥터 활용) 관리자 2019.11.08 649
1056 델파이 코드 컨버전 빠르게 완료하기 관리자 2019.11.06 716
1055 엔터프라이즈 커넥터 무료 제공 (업데이트 서브스크립션 계약중인 고객 대상) 관리자 2019.10.31 513
1054 InterBase ToGo 모바일용 라이선스 배포하기 file 데브기어 2019.10.30 566
» DLL 폼에서 VCL 폼 스타일 적용하기 file 김원경 2019.10.28 6051
1052 [고객 사례- 의료, 델파이] 의료용 소프트웨어(폐활량&심전도 체크) - Advanced Spirometer and ECG 관리자 2019.10.25 710
1051 [고객사례-소셜네트워크, 델파이] KisKis 관리자 2019.10.25 1192
1050 이 달의 기술자료 - 2019년 11월 file 험프리 2019.10.25 435
1049 IBM 왓슨과 인공지능(AI) 활용하기 - 델파이/C++빌더 관리자 2019.10.25 781
1048 [발표자료] 20191017 실전 사례로 살펴보는 소프트웨어 현대화 전략 file 관리자 2019.10.23 477
1047 윈도우 10 지원과 좋은 UX 구현을 위해 기억해야 할 점 관리자 2019.10.22 718
1046 [개발사례-유통분야] 20년된 프로그램을 현대식 마이크로서비스 아키텍처로 전환 관리자 2019.10.22 1181
1045 [개발팁] TBooleanHelper.ToString 그리고 TUseBoolStrs 관리자 2019.10.21 353
1044 RAD스튜디오의 iOS 13 및 안드로이드 64-bit 대응 관리자 2019.10.21 598