鼠标指针
Screen.Cursors[1] := LoadCursor(HInstance, ‘cur1′); Screen.Cursors[2] := LoadCursor(HInstance, ‘cur2′); Panel1.Cursor := TCursor(1); //Panel1.Cursor := 1; 也可, 因为 TCursor 就是个数字类型. Panel2.Cursor := TCursor(2); Image1.Picture.Bitmap.Handle := LoadBitmap(HInstance, ‘bmp1′); image1.Picture.Bitmap.LoadFromResourceName(HInstance, ‘bmp2′);
BMP图片 用图片作程序背景:
bit := TBitmap.Create; bit.LoadFromResourceID(HInstance, 1); Self.Brush.Bitmap := bit; Repaint;
其中rc文件中用编号 1 BITMAP img\bmpFile1.bmp 菜单资源
//rc 文件: MyMenu1 MENU begin Popup "File" begin MenuItem "&Open" MenuItem "&Save" MenuItem Separator MenuItem "E&xit" end end procedure TForm1.FormCreate(Sender: TObject); var hm: HMENU; begin hm := LoadMenu(HInstance, ‘MyMenu1′); SetMenu(Handle, hm); end;
字符串资源
//rc 文件: StringTable begin 0 "AAAA" 1 "BBBB" 2 "CCCC" 3 "DDDD" end procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Clear; with Memo1.Lines do begin Add(LoadStr(0)); Add(LoadStr(1)); Add(LoadStr(2)); Add(LoadStr(3)); end; end; //假如有这样一个字符串资源: StringTable begin 0 "String_One" 1 "String_Two" end procedure TForm1.Button1Click(Sender: TObject); var sp: array[0..254] of Char; begin LoadString(HInstance, 0, sp, SizeOf(sp)); ShowMessage(sp); {String_One} LoadString(HInstance, 1, sp, SizeOf(sp)); ShowMessage(sp); {String_Two} end;
提取dll中的BMP文件
procedure TForm1.FormPaint(Sender: TObject); var h: THandle; bit: TBitmap; begin h := LoadLibrary(‘c:\temp\Project1.dll’); {载入 DLL} bit := TBitmap.Create; bit.LoadFromResourceName(h, ‘img1′); {提取资源} Canvas.Draw(10, 10, bit); {在窗体上绘制图片} FreeLibrary(h); {载卸 DLL} bit.Free; end;
WinAPI: ExtractIcon – 获取 EXE、DLL 或 ICO 文件中的图标
//声明: ExtractIcon( hInst: HINST; {调用函数的程序实例} lpszExeFileName: PChar; {文件路径; 文件可以是 *.exe、*.dll、*.ico} nIconIndex: UINT {图标索引} ): HICON; {返回图标句柄; 索引为 0 时返回第一个图标句柄; 索引为 #FFFFFFFF 时返回图标总数}