//下面是 Windows 支持的資源格式:
RT_CURSOR = MakeIntResource(1);
RT_BITMAP = MakeIntResource(2);
RT_ICON = MakeIntResource(3);
RT_MENU = MakeIntResource(4);
RT_DIALOG = MakeIntResource(5);
RT_STRING = MakeIntResource(6);
RT_FONTDIR = MakeIntResource(7);
RT_FONT = MakeIntResource(8);
RT_ACCELERATOR = MakeIntResource(9);
RT_RCDATA = Types.RT_RCDATA; //MakeIntResource(10);
RT_MESSAGETABLE = MakeIntResource(11);
DIFFERENCE = 11;
RT_GROUP_CURSOR = MakeIntResource(DWord(RT_CURSOR + DIFFERENCE));
RT_GROUP_ICON = MakeIntResource(DWord(RT_ICON + DIFFERENCE));
RT_VERSION = MakeIntResource(16);
RT_DLGINCLUDE = MakeIntResource(17);
RT_PLUGPLAY = MakeIntResource(19);
RT_VXD = MakeIntResource(20);
RT_ANICURSOR = MakeIntResource(21);
RT_ANIICON = MakeIntResource(22);
//盡管 Windows 規定 RCDATA 用作自定義格式, 我們也可以自定義格式名稱, 譬如本例(rc 文件):
MyFile1 RCDATA "c:\Windows\system32\notepad.exe"
MyFile2 MyRes "c:\Windows\System32\calc.exe"
{上面把 notepad.exe 時指定為 RCDATA 格式; 把 calc.exe 就指定成了自定義的 MyRes 格式}
//本例在資源中嵌入了記事本和計算器, 然後提取並調用:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
rs: TResourceStream;
begin
rs := TResourceStream.Create(HInstance, 'MyFile1', RT_RCDATA);
rs.SaveToFile('c:\temp\pad.exe');
WinExec('c:\temp\pad.exe', 1);
rs.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
rs: TResourceStream;
begin
rs := TResourceStream.Create(HInstance, 'MyFile2', 'MyRes');
rs.SaveToFile('c:\temp\sum.exe');
WinExec('c:\temp\sum.exe', 1);
rs.Free;
end;