我想在数据库里存放图标,用listview读取!请问应该怎么做! 我用ado连的SQL数据库!我想把图标存到数据库里,因为不知道怎么做,所以把图标的图片截下来,存到数据库里(JPEG格式的),再在那条记录上写上相对应的图标名称!然后在程序里一个一个读取,这样做在很多地方有问题,不是很方便,但这几天看了一些关于listview的贴子,知道了用listview可以像windows一样显示图标文件,所以想请教一下用listview怎么样才能读取数据库里的数据!可以的话,给点源代码!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TForm1.Button1Click(Sender: TObject);var tempstream: TStringStream; tempIcon: TIcon; IconIndex: integer; item: TListItem;begin try //创建一个流,以便读取数据库中 的ICON tempstream := TStringStream.Create(' '); TBlobField(Query1.FieldByName('Icon')).SaveToStream(tempstream); tempstream.Position := 0; //创建一个ICON对象,然后以流的方式加载进一个ICON数据 tempIcon := TIcon.Create; tempIcon.LoadFromStream(tempstream); //添加到ImageList1中 IconIndex := ImageList1.AddIcon(tempIcon); item := ListView1.Items.Add; item.Caption := 'sdfa'; //显示ICON item.ImageIndex := IconIndex; finally tempstream.Free; tempIcon.Free; end;end;//保存ICON到数据库procedure TForm1.Button2Click(Sender: TObject);var tempIcon: TIcon; MS: TMemoryStream;begin tempIcon:= TIcon.Create; try with tempIcon do begin Handle:=Image1.Picture.Icon.Handle ; MS := TMemoryStream.create; SaveToStream(MS); MS.Position := 0; Query1.Edit; TBlobField(Query1.FieldbyName('Icon')).LoadFromStream(MS); Query1.Post; end; finally tempIcon.Free; end;end; 那图标在数据库里是怎么存储的!图标不是有图片和标题吗?我现在是把图片和标题分开存储的,而且图片是JPEG格式存的。这样通过 fei19790920(饭桶的马甲(抵制日货)) 大哥的方法是不是也能把图标的标题读取出来啊! 为什么要用JPEG格式存,ICON有ICON的格式!!保存的方法不是已经列出来了吗!! *%*&#@!^$*&)(*)(*)_@!#!_)(#_)!_ fei19790920(饭桶的马甲(抵制日货)) 大哥,你说的代码是对数据库里的icon文件的存取吧我的意思是 像桌面上的"我的电脑"一样 它有"我的电脑"的icon,还有"我的电脑"这几个字啊,一个文件夹不是有它的icon和相对应的文件名吗?这个文件名在数据库里是不是应该和icon存在同一条记录里,读取的时候该怎么读取呢? fei19790920(饭桶的马甲(抵制日货)) 好贴啊 fei19790920(饭桶的马甲(抵制日货)) 好贴啊!你也照顾一下新手吧!呵呵,别晕了 fastreport中合计问题 关于文件流的一点问题! 关于spcomm 怎样获取一个任意目录的完整路径 如何在DBCtrlGrid中右键点饥也可选择一条数据 请教高人,用DELPHI连MS SQL时出现Login fail……,高分相送,急…… CSV文件导入MEMO中显示不全 极其简单的两个问题,来捡分呀。 一个初学者关于发邮件的问题. 各位大神。请问这段C++代码翻译成Delphi 是什么? 如何把word,excel,jpg,bmp类型的文件存储到sql的image字段中去 语言问题,EXTERNALSYM有什么用?
procedure TForm1.Button1Click(Sender: TObject);
var
tempstream: TStringStream;
tempIcon: TIcon;
IconIndex: integer;
item: TListItem;
begin
try
//创建一个流,以便读取数据库中 的ICON
tempstream := TStringStream.Create(' ');
TBlobField(Query1.FieldByName('Icon')).SaveToStream(tempstream);
tempstream.Position := 0; //创建一个ICON对象,然后以流的方式加载进一个ICON数据
tempIcon := TIcon.Create;
tempIcon.LoadFromStream(tempstream); //添加到ImageList1中
IconIndex := ImageList1.AddIcon(tempIcon); item := ListView1.Items.Add;
item.Caption := 'sdfa';
//显示ICON
item.ImageIndex := IconIndex;
finally
tempstream.Free;
tempIcon.Free;
end;
end;//保存ICON到数据库
procedure TForm1.Button2Click(Sender: TObject);
var
tempIcon: TIcon;
MS: TMemoryStream;
begin
tempIcon:= TIcon.Create;
try
with tempIcon do
begin
Handle:=Image1.Picture.Icon.Handle ;
MS := TMemoryStream.create;
SaveToStream(MS);
MS.Position := 0;
Query1.Edit;
TBlobField(Query1.FieldbyName('Icon')).LoadFromStream(MS);
Query1.Post;
end;
finally
tempIcon.Free;
end;
end;
保存的方法不是已经列出来了吗!!