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

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

Аватара для Johny777

Ветеран


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

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


Цитата FanN:
И еще вопрос: как вшить в инсталлятор свой шрифт? Как я понял, форточка не распознает шрифт просто так, его нужно вначале установить, а для этого нужно добавить строку в реестре и скопировать сам шрифт на системный диск.. Хотело бы увидеть как это будет выглядеть.. Спасибо. »
2 примера

читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
OutputBaseFilename=setup
 
[Files]
Source: Alterna.ttf; Flags: dontcopy
 
[_Code]
function AddFontResource(FileName: PAnsiChar): Integer; external 'AddFontResourceA@gdi32.dll stdcall';
function RemoveFontResource(FileName: PAnsiChar): BOOL; external 'RemoveFontResourceA@gdi32.dll stdcall';
 
function InitializeSetup(): boolean;
begin
  ExtractTemporaryFile('Alterna.ttf');
  Result:=AddFontResource(ExpandConstant('{tmp}')+'\Alterna.ttf')>0; //добавляем шрифт в таблицу шрифтов
  if Result then SendMessage(HWND_BROADCAST,$1D,0,0); //оповещаем окна верхнего уровня о том, что изменилась таблица шрифтов
end;
 
procedure InitializeWizard();
begin
  WizardForm.WelcomeLabel1.Font.Name:= 'a_AlternaBrk';
  WizardForm.WelcomeLabel1.Font.Style:= [fsBold];
end;
 
procedure DeinitializeSetup();
begin
  //удаляем свой шрифт и оповещаем окна верхнего уровня о том, что изменилась таблица шрифтов
  if RemoveFontResource(ExpandConstant('{tmp}')+'\Alterna.ttf') then SendMessage(HWND_BROADCAST,$1D,0,0);
end; 


,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,


#define Font "Zombie.ttf"
#define FontName "DS Zombie Cyr"

[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=.

[Languages]
Name: "rus"; MessagesFile: "compiler:Languages\Russian.isl"

[Files]
Source: {#Font}; Flags: dontcopy;

[_code]
var
IsCustomFontInstalled: boolean;
FontName: string;

function AddFontResource(FileName: PAnsiChar): Integer; external 'AddFontResourceA@gdi32.dll stdcall';
function RemoveFontResource(FileName: PAnsiChar): BOOL; external 'RemoveFontResourceA@gdi32.dll stdcall';

Procedure InitializeWizard();
begin
ExtractTemporaryFile('{#Font}');
IsCustomFontInstalled:=AddFontResource(ExpandConstant('{tmp}')+'\{#Font}')>0;
if IsCustomFontInstalled then SendMessage(HWND_BROADCAST,$1D,0,0);
if FontExists('{#FontName}') then FontName:='{#FontName}' else FontName:='Arial';
WizardForm.Font.Name:= FontName;
end;

procedure DeInitializeSetup();
begin
WizardForm.Free
if IsCustomFontInstalled then
if RemoveFontResource(ExpandConstant('{tmp}')+'\{#Font}') then SendMessage(HWND_BROADCAST,$1D,0,0);
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:08, 03-03-2012 | #922