Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 8
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день. Воспользовался скриптом, взятым с этого сайта на свой шрифт в инсталляторе. Код вставил себе в скрипт, ошибок при компиляции нет, но в инсталле шрифт не изменился.

читать дальше »
#define Font "Rurintania.ttf"
#define FontName "Rurintania"

[Setup]
RawDataResource=font:{#Font}

[code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

function FindResource(hModule: THandle; lpName: String; lpType: Integer): THandle; external 'FindResource{#A}@kernel32.dll stdcall';
function LoadResource(hModule, hResInfo: THandle): THandle; external 'LoadResource@kernel32.dll stdcall';
function LockResource(hResData: THandle): Longint; external 'LockResource@kernel32.dll stdcall';
function SizeofResource(hModule, hResInfo: THandle): DWORD; external 'SizeofResource@kernel32.dll stdcall';
function AddFontMemResourceEx(pbFont: Longint; cbFont: DWORD; pdv: Longint; var pcFonts: DWORD): THandle; external 'AddFontMemResourceEx@gdi32.dll stdcall';
function RemoveFontMemResourceEx(fh: THandle): BOOL; external 'RemoveFontMemResourceEx@gdi32.dll stdcall';

const
RT_RCDATA = 10;

var
fh, hResInfo, hResAddr: THandle;
pcFonts, iResSize: DWORD;

procedure InitializeWizard();
begin
if not FontExists('{#FontName}') then
begin
hResInfo := FindResource(HInstance, '_IS_FONT', RT_RCDATA);
iResSize := SizeofResource(HInstance, hResInfo);
hResAddr := LockResource(LoadResource(HInstance, hResInfo));
pcFonts := 1;
fh := AddFontMemResourceEx(hResAddr, iResSize, 0, pcFonts);
end;
//отсюда начинаем указывать наш шрифт
WizardForm.Font.Name := '{#FontName}';
end;

procedure DeinitializeSetup();
begin
RemoveFontMemResourceEx(fh);
end;


Брал этот код.

Отправлено: 16:21, 07-05-2013 | #374