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

  #1608  
Старый 25.05.2008, 03:04
cash$$$
Banned
Регистрация: 06.01.2008
Сообщений: 413
Провел на форуме:
1301036

Репутация: 1334
По умолчанию

Цитата:
Сообщение от Nick_Rimer  
ребята! подскажите, как бы мне сделать так, чтобы моя программа использовала шрифт, который я "зашью" в ресурс? мне не нужно при этом его выгружать и куда-то записывать, а просто использовать.. например, для текста в поле ввода - один шрифт, для текста на "кэпшнах" - другой шрифт..
Используй текстовый редактор, создай *.rc файл, описывающий шрифт:
Код:
MY_FONT ANYOL1 "Bauhs93.ttf"
Первые два параметра могут быть любыми. Они будут использоваться в программе позже.
Затем для создания *.res файла используйте компилятор командной строки BRCC32.EXE, поставляемый с Delphi. Если ваш файл на этапе 1 был назван MyFont.rc, командная строка в сеансе DOS должна выглядеть так:
Код:
BRCC32 MyFont
Программа добавит в компилируемый файл созданный ресурс .rc и создаст файл с тем же именем, за исключением расширения, которое будет .res: MyFont.res
В программе добавь директиву компилятора, чтобы включить созданный файл:
Код:
{$R MyFont.res}
Правильным будет разместить его в секции реализации после строчки {$R *.DFM}.
Добавь процедуру создания файла из ресурса, делающим шрифт доступным для использования. Пример:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
Res : TResourceStream;
begin
Res := TResourceStream.Create(hInstance, 'MY_FONT', Pchar('ANYOL1'));
Res.SavetoFile('Bauhs93.ttf');
Res.Free;
AddFontResource(PChar('Bauhs93.ttf'));
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;
Теперь можно использовать данный шрифт в своем приложении:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Font.Name := 'Bauhaus 93';
end;
Установленный шрифт может быть удален программным путем, естественно, в случае, когда он ничем не используется:
Код:
procedure TForm1.FormDestroy(Sender: TObject);
begin
RemoveFontResource(PChar("Bauhs93.ttf"))
SendMessage(HWND_BROADCAST,WM_FONTCHANGE,0,0);
end;
 
Ответить с цитированием