资源描述:
《API图像函数(delphi)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、WinAPI:ExtractIcon-获取EXE、DLL或ICO文件中的图标//声明:ExtractIcon(hInst:HINST;{调用函数的程序实例}lpszExeFileName:PChar;{文件路径;文件可以是*.exe、*.dll、*.ico}nIconIndex:UINT{图标索引}):HICON;{返回图标句柄;索引为0时返回第一个图标句柄;索引为#FFFFFFFF时返回图标总数}//举例:unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics
2、,Controls,Forms,Dialogs,StdCtrls,ExtCtrls;typeTForm1=class(TForm)Button1:TButton;procedureButton1Click(Sender:TObject);end;varForm1:TForm1;implementation{$R*.dfm}usesShellAPI;{ExtractIcon在其中声明}procedureTForm1.Button1Click(Sender:TObject);varico:TIcon;i,count,x,y,w,h:Integer;FileP
3、ath:string;begin{随便找了个路径,如果缺失会退出}FilePath:='C:ProgramFilesMacromediaFireworks8Fireworks.exe';ifnotFileExists(FilePath)thenbeginShowMessage('文件不存在');Exit;end;ico:=TIcon.Create;x:=10;y:=10;w:=0;h:=0;Repaint;{先算出文件内的图标总数}count:=ExtractIcon(HInstance,PChar(FilePath),HICON(-1));fo
4、ri:=0tocount-1dobegin{循环提取图标}ico.Handle:=ExtractIcon(HInstance,PChar(FilePath),i);{画出图标}Canvas.Draw(x,y,ico);{下面只是调整显示位置}ifw=ClientWidth-wthenbeginx:=10;y:=y+h+10;end;end;ico.Free;end;end.//效果图:WinAP
5、I:LoadBitmap-从资源中载入位图//声明:LoadBitmap(hInstance:HINST;{EXE或DLL的句柄}lpBitmapName:PChar{资源标识符}):HBITMAP;{返回位图句柄}这里有示例WinAPI:LoadCursor-从资源中载入光标//声明:LoadCursor(hInstance:HINST;{EXE或DLL的句柄,0表示载入系统资源}lpCursorName:PChar{资源标识符}):HCURSOR;{返回光标句柄}这里有示例//调用系统光标的例子:unitUnit1;interfaceusesWind
6、ows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;typeTForm1=class(TForm)Button1:TButton;procedureButton1Click(Sender:TObject);end;varForm1:TForm1;implementation{$R*.dfm}procedureTForm1.Button1Click(Sender:TObject);varcur:TIcon;begincur:=TIcon.Create
7、;cur.Handle:=LoadCursor(0,IDC_HAND);Canvas.Draw(11,11,cur);cur.Handle:=LoadCursor(0,IDC_HELP);Canvas.Draw(44,11,cur);cur.Free;end;end.//效果图://附系统光标列表:IDC_ARROW=MakeIntResource(32512);IDC_IBEAM=MakeIntResource(32513);IDC_WAIT=MakeIntResource(32514);IDC_CROSS=MakeIntResource(32515)
8、;IDC_UPARROW=MakeIntResource(32516);IDC_