![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Приветствую всех!
Вообщем есть ".dll" библиотека при помощи которой можно изменять внешний вид программы, правда она сделана для "Inno Setup" кто знает... Inno Setup использует тот же язык программирования поэтому у меня появилась идея прикрутить ее к моей программе в Delphi. В Inno Setup она устанавливается след. образом: Т.е. добавляется в ресурсы сама библиотека и скин. После запуска программы они распаковываются в директорию "%tmp%" Код:
[Files] ; Add the ISSkin DLL used for skinning Inno Setup installations. Source: ISSkin.dll; DestDir: {app}; Flags: dontcopy ; Add the Visual Style resource contains resources used for skinning, ; you can also use Microsoft Visual Styles (*.msstyles) resources. Source: Office2007.cjstyles; DestDir: {tmp}; Flags: dontcopy Объявляем API функции. Код:
// Importing LoadSkin API from ISSkin.DLL procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall'; // Importing UnloadSkin API from ISSkin.DLL procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall'; // Importing ShowWindow Windows API from User32.DLL function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall'; И тут, собственно при запуске распаковывается скин из ресурсов и загружается. Код:
function InitializeSetup(): Boolean; begin ExtractTemporaryFile('Office2007.cjstyles'); LoadSkin(ExpandConstant('{tmp}\Office2007.cjstyles'), ''); Result := True; end; Далее программа закрывается. Код:
procedure DeinitializeSetup(); begin // Hide Window before unloading skin so user does not get // a glimpse of an unskinned window before it is closed. ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0); UnloadSkin(); end; Внимание вопрос!) Возможно ли как то это прикрутить к моему Delphi проекту? И как это собственно сделать? Я ведь затеял все это ради того, что в данном случае есть возможность использовать темы формата ".cjstyles".. Если кто то знает какой нибудь компонент для Delphi который бы работал с этим форматам - подскажите. Буду очень благодарен. Заранее спасибо) |
#2
|
||||
|
||||
![]() А бугл что по этому поводу пишет?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
Freeman (03.02.2015)
|