AR_01 RCDATA "AR_01 Regular.ttf"
ZR_01 RCDATA "ZR_01 Regular.ttf"
新建一个DLL程序,添加刚才的资源文件,直接编译成DLL文件
=========================================================================
接下来就是调用字体资源
procedure LoadFontFromDll(const DllName, FontName: PWideChar);
var
DllHandle: HMODULE;
ResHandle: HRSRC;
ResSize, NbFontAdded: Cardinal;
ResAddr: HGLOBAL;
begin
DllHandle := LoadLibrary(DllName);
if DllHandle = 0 then
RaiseLastOSError;
//ResHandle := FindResource(DllHandle, FontName, RT_FONT);
//ResHandle := FindResource(DllHandle, MAKEINTRESOURCE(1), RT_FONT);
ResHandle := FindResource(DllHandle, MAKEINTRESOURCE(FontName), RT_RCDATA);
if ResHandle = 0 then
begin
ShowMessage('ResHandle');
RaiseLastOSError;
end;
ResAddr := LoadResource(DllHandle, ResHandle);
if ResAddr = 0 then
RaiseLastOSError;
ResSize := SizeOfResource(DllHandle, ResHandle);
if ResSize = 0 then
RaiseLastOSError;
if 0 = AddFontMemResourceEx(Pointer(ResAddr), ResSize, nil, @NbFontAdded) then
RaiseLastOSError;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
FontName: PChar;
FontHandle: THandle;
begin
FontName := 'AR_01';
LoadFontFromDll('ZaiRe.dll' , FontName);
FontHandle := CreateFont(0, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH,
FontName);
if FontHandle = 0 then
RaiseLastOSError;
Label1.Caption:=Edit1.Text;
label1.Font.Handle:=FontHandle;
label1.Font.Size:=72;
end;
完美解决!
DLL
简介
动态
链接库(Dynamic Link Library,
DLL
)是实现Windows
应用
程序代码重用和共享的重要手段,它是从C语言函数库和Pascal语言的库单元的概念发展起来的
在C和Pascal语言中,很多标准函数可以放在一个函数库中或一个库单元中,在C和Pascal语言中,很多标准函数可以放在一个函数库中或一个库单元中
在程序编译的时候,由编译器把所调用的函数添加到可执行
文件
中去,(即每个调用均会产生一个函数代码的拷贝)
随着使用函数库或库单元等方法已不能适用Windows多任务环境下
应用
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
TfrmMain = class(TForm)
btnLoadLibr...
无论是安装一些系统
字体
还是自定义的
字体
文件
,本方法都是适用的。需要注意的是目前网络上介绍的使用AddFontResource实现安装
字体
,但是仅仅对本次设置有效,重启之后
字体
还是会消失。使用本文方法可永久实现
字体
的安装。
看看MSDN中关于安装
字体
的介绍:
To install unique hidden font resources follow these steps:
1 Copy t...
Delphi
动态
改变VCL对象的颜色和
字体
,实现的功能有:储存对象、改变颜色、改变
字体
。在
应用
程序运行时
动态
改变VCL对象,而且改变的VCL对象可使用VCL Framework的Persistent功能保存等。通过改变
字体
颜色和
字体
样式来演示这些功能的实现。实现此三功能,代码如下:
储存对象操作:
procedure TForm1.Button1Click(Sender: TObject);
begin
mss.Clear;
mss.WriteComponent(Edit2);
end;
改变
字体
颜色操作:
procedure TForm1.Button2Click(Sender: TObject);
begin
if (Self.ColorDialog1.Execute) then
Edit2.Color := Self.ColorDialog1.Color;
end;
改变
字体
操作:
procedure TForm1.Button3Click(Sender: TObject);
begin
if (Self.FontDialog1.Execute) then
Edit2.Font := Self.FontDialog1.Font;
end;
(郴州职业技术学院, 湖南 郴州 423000)
摘要:
资
源文件
是一种能有效地组织、管理和使用
资
源的
文件
形式,在软件开发中有着广泛的
应用
。本文详细介绍了在
Delphi
编程中
资
源文件
的创建方法和使用技巧。
关键词:
Delphi
,
资
源文件
,TResourceStream对象,MCISend String 函数
The Application of Resource F