Как применить стили VCL к формам на основе DLL в Inno Setup? Новые стили не загружаются

У меня проблема с загрузкой стилей VCL для Inno Setup. Установщик генерирует правильно, но все еще остается в старом стиле. Новые стили не загружаются.

Я не понимаю, почему это происходит. Пожалуйста помоги!

Вот мой код iss:

[Files]
...
; add library to create new styles
Source: "VclStylesinno.dll"; DestDir: {app}; Flags: dontcopy
Source: "Styles/Pink.vsf"; DestDir: {app}; Flags: dontcopy

[Code]

// Import the LoadVCLStyle function from VclStylesInno.DLL
procedure LoadVCLStyle(VClStyleFile: String);
  external 'LoadVCLStyleW@files:VclStylesInno.dll stdcall';
// Import the UnLoadVCLStyles function from VclStylesInno.DLL
procedure UnLoadVCLStyles;
  external 'UnLoadVCLStyles@files:VclStylesInno.dll stdcall';

function InitializeSetup(): Boolean;
begin
   ExtractTemporaryFile('Pink.vsf');
   LoadVCLStyle(ExpandConstant('Pink.vsf'));
   Result := True;
end;

person darkK    schedule 14.04.2016    source источник


Ответы (1)


Просто следуйте примеру сценария VCL Styles:

function InitializeSetup(): Boolean;
begin
  ExtractTemporaryFile('Amakrits.vsf');
  LoadVCLStyle(ExpandConstant('{tmp}\Amakrits.vsf'));
  Result := True;
end;

Обратите внимание на {tmp}\.

Вы не указываете путь к файлу стиля, поэтому LoadVCLStyle не работает, так как не может найти файл.

person Martin Prikryl    schedule 14.04.2016