Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 팁&트릭
Delphi Programming Tip&Tricks
[367] 스킨을 이용하여 폼의 모양 바꾸기 - 9 마지막
첫눈 [hadugo] 258 읽음    2017-01-04 15:04
앞에서 만든 SkinLoadU를 이용하는 방법입니다.

먼저 델파이를 실행하고 폼을 하나 만듭니다.

그 폼을 저장하면 DFM파일이 생성될 것입니다.

이렇게 몇개의 폼을 만들어 놓습니다.

물론 폼 안에 사용되는 객체들은 어떤 것들이 있어도 관계 없지만
같은 기능을 하는 객체들은 같은 이름이어야 합니다.


그렇게 만들어진 DFM파일은
DFMToBin('C:\Skin\Skin1.dfm', 'C:\Sample\Skin\Skin1.bin');
DFMToBin('C:\Skin\Skin2.dfm', 'C:\Sample\Skin\Skin2.bin');
DFMToBin('C:\Skin\Skin3.dfm', 'C:\Sample\Skin\Skin3.bin');
프로시저를 이용하여 Bin파일로 변환해 줍니다.

이렇게 준비가 되면 이제 이렇게 만들어진 스킨을 불러와 메인폼으로 사용하는 방법을 보여드리겠습니다.

먼저 어플리케이션 소스코드입니다.
program Main;

uses
  Vcl.Forms,
  VCL.Dialogs,
  Vcl.StdCtrls,
  SkinLoadU in 'SkinLoadU.pas',
  SkinEventU in 'SkinEventU.pas';

{$R *.res}
Var
  SkinFile : String;
  Form : TForm;
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  IF NOT PromptForFileName(SkinFile, '(*.bin)|*.bin', '*.bin', 'Select Skin', 'C:\Sample\Skin', False) Then Exit;
  Application.CreateForm(TForm, Form);
  LoadComponentFromBinFile(Form, SkinFile);
  TButton(Form.FindComponent('Button1')).OnClick := TEvent.ButtonClick;
  TButton(Form.FindComponent('Button2')).OnClick := TEvent.ButtonClick;
  Application.Run;
end.



그리고 메인폼에 사용될 이벤트들은 다음과 같이 별도의 유닛입니다.

unit SkinEventU;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TEvent = class
    Class procedure ButtonClick(Sender: TObject);
  end;

implementation

Class procedure TEvent.ButtonClick(Sender: TObject);
begin
  ShowMessage((Sender AS TButton).Caption + ' Clicked');
end;

end.


이제 컴파일하여 실행해 보면
미리 만들어 놓은 Skin1.bin, Skin2.bin, Skin3.bin 중 하나를 선택할 수 있을 것입니다.

그 중 하나를 선택하면 선택된 스킨으로 폼이 생성되고 보여질 것입니다.

그리고 그 폼이 닫히면 당연히 프로그램이 종료되겠죠.


이렇게 완성된 프로그램의 실행파일을 압축하여 첨부하였으니 참고하시기 바랍니다.

+ -

관련 글 리스트
367 스킨을 이용하여 폼의 모양 바꾸기 - 9 마지막 첫눈 258 2017-01-04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.