首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

寻找与ImageList类似控件,该如何处理

2012-02-21 
寻找与ImageList类似控件delphi自带的ImageList控件只能加入bmp ico两种格式的图片,有没有支持jpg的ImageL

寻找与ImageList类似控件
delphi自带的ImageList控件只能加入bmp ico两种格式的图片,有没有支持jpg的ImageList功能的控件?

[解决办法]
帮你顶!
[解决办法]
自己写一个……
[解决办法]
Add
AddIcon
AddImages
Replace
ReplaceIcon
ReplaceMasked 


ImageList使用这些函数动态的加载你的图片,将jpg转换成bmp再加入
[解决办法]
建立rc文件,把jpeg文件加到里面,然后编译成.res

工程里引用jpeg单元,再用{$R XX.res}把res文件编译进去,然后用LoadResource等函数从资源加载图片


[解决办法]
以前项目一些代码事例
----------------------------------------------------------
1、res.rc资源定义文件

aboutJPGabout.jpg
loginJPGlogin.jpg
navigateheadJPG navigatehead.jpg


2、编译资源rc文件成 res 文件。
brcc32.exe res.rc

-------------------------------------------------------
3、资源工程源码

library resource;

uses
SysUtils,
Classes,
Jpeg,
Graphics,
ExtCtrls;

{$R *.res}
{$R res.res} //资源res

procedure LoadJpegFromRes(const Image: TImage; ResName: string); stdcall;
var
Stream: TStream;
Jpeg: TJpegImage;
begin
Stream := TResourceStream.Create(HInstance, ResName, PChar('JPG'));
Jpeg := TJpegImage.Create;
try
Jpeg.LoadFromStream(Stream);
if Image.Stretch then Image.Canvas.StretchDraw(Rect(0,0,Image.Width,Image.Height),Jpeg)
else Image.Canvas.Draw(0,0,Jpeg); 
finally
Jpeg.Free;
Stream.Free;
end;
end;

procedure LoadIconFromRes(const Icon: TIcon; ResName: String); stdcall;
var
Stream: TStream;
begin
Stream := TResourceStream.Create(HInstance, ResName, PChar('ICO'));
try
Icon.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;

exports
LoadJpegFromRes,
LoadIconFromRes;
begin
end.

------------------------------------------------------------
4、声明与使用
procedure LoadJpegFromRes(const image: TImage; resName: string); stdcall; external 'resource.dll';
procedure LoadIconFromRes(const icon: TIcon; resName: string); stdcall; external 'resource.dll';
使用Example:
LoadJpegFromRes(Image,'login');

热点排行