2011년 4월 6일 수요일

DevExpress 6.xx 버젼의 Skinres 파일 사용하기

DevExpress 6.50 부터는 스킨 파일(*.Skinres)을 별도로 제공합니다.
이전에도 SkinEditor를 사용해서 별도로 저장해서 사용하기도 했지만, 제공해주니 편하네요.

퀀텀의 스킨은 스킨이 Uses문에 추가되어 실행화일의 크기가 증가합니다.
따라서, 많은 스킨을 사용자에게 제공하려 하는 경우 실행화일이 조금 커집니다.
( 실제로 타 Skin보다 용량이 크긴 합니다. )

이를 위한 해결방법으로 UserSkin을 사용하는데...

일단 SkinRes화일이 있어야 합니다.

6.50은 아래와 같은 경로에 파일이 있습니다.

1.const
2. sFileName = 'C:\Delphi\My_Components\DevExpress\ExpressSkins Library\Binary Skin Files\AllSkins.skinres';


이 화일에는 모든 스킨이 다 들어 있는 바이너리 화일입니다.
따라서 여기서 스킨을 불러오려면 아래와 같은 코드를 사용합니다.

01.// 화일에서 스킨명을 읽어 오기.
02. dxSkinsUserSkinPopulateSkinNames( sFileName , ListBox1.Items );
03.// 스킨 명을 적용하기..
04.procedure TForm2.ListBox1Click(Sender: TObject);
05.var
06. AIndex: Integer;
07. ASkinName: string;
08.begin
09. AIndex := ListBox1.ItemIndex;
10. ASkinName := ListBox1.Items[AIndex];
11. if dxSkinsUserSkinLoadFromFile (sFileName, ASkinName ) then
12. begin
13. dxSkinController1.NativeStyle := false;
14. dxSkinController1.SkinName := 'UserSkin';
15. dxSkinController1.UseSkins := true;
16. end;
17.end;