我想将用OpenDialog打开的若干个jpg图片在Listview里面显示缩小图,怎么才能实现?最好能给出代码,例如:
if OpenDialog1.execute() then
begin
//此处对ListView1进行操作
end;是否要用到ImageList呢?但是ImageList不能存储jpg格式的图片,怎么办?
请指教,谢谢!
if OpenDialog1.execute() then
begin
//此处对ListView1进行操作
end;是否要用到ImageList呢?但是ImageList不能存储jpg格式的图片,怎么办?
请指教,谢谢!
procedure TMainForm.ShareListViewClick(Sender: TObject);
var
ListIndex, ListCount, i : integer;
ListItem : TListItem;
str : string;
FileInfo : TSHFileInfo;
fPtr : pFileItem;
begin if ShareListView.Selected = nil then exit;
ListIndex:=PListitem(ShareListView.Selected.Data)^.index;
ListCount:=PListitem(ShareListView.Selected.Data)^.Count;
if ListCount <> -1 then
begin ClientPageCtrl.ActivePageIndex :=0; pTabData(ShareTabSheet.Tag).MyDir:= ShareListView.Selected.SubItems[0];
pTabData(ShareTabSheet.Tag).MyGroup:= ShareListView.Selected.SubItems[1];
pTabData(ShareTabSheet.Tag).MyRListItem:= ShareListView.Selected; CurDirName:= ShareListView.Selected.SubItems[0]+'\';
CurGroupName:=ShareListView.Selected.SubItems[1];
AddCap(CurGroupName, CurDirName); for i:=1 to BrowseListView.Items.Count do Dispose(pFileItem(BrowseListView.Items[i-1].Data));
BrowseListView.Items.Clear; //FindIcon-----------------------------------------------------------------
if bSysIcon then
with BrowseListView do
begin
SmallImages:=TImageList.CreateSize(16,16);
SmallImages.Handle:=ShGetFileInfo('',0,FileInfo, SizeOf(FileInfo),
SHGFI_SMALLICON or SHGFI_ICON or SHGFI_SYSICONINDEX );
end
else BrowseListView.SmallImages := ImageList1;
//------------------------------------------------------------------------- for i:= 1 to ListCount do
begin
ListItem:=BrowseListView.Items.Add;
str := StrListAll.Strings[ListIndex+i-1]; new(fPtr);
if str[length(str)]='\' then
begin
if not bSysIcon then ListItem.ImageIndex := 0
else ListItem.ImageIndex := GetFileIconIndex(str);
delete(str,length(str),1);
fPtr.ftype := IsDir;
end
else
begin
if not bSysIcon then ListItem.ImageIndex := GetImgIndex(str)
else ListItem.ImageIndex := GetFileIconIndex(str);
fPtr.ftype :=IsFile;
end;
ListItem.Data := fPtr;
listitem.Caption := ExtractFileName(str);
end; end
else //ListCount <> -1 ,old history
begin
ClientPageCtrl.ActivePageIndex :=PListitem(ShareListView.Selected.Data)^.index;
AddCap(pTabData(ClientPageCtrl.ActivePage.tag)^.MyGroup,
pTabData(ClientPageCtrl.ActivePage.tag)^.MyDir);
end; //============================================================
if(not IsDoPrevNext) then
begin
if CurDirItem <> nil
then PListItem(CurDirItem.Data)^.NextDirItem := ShareListView.Selected;
PListItem(ShareListView.Selected.Data)^.PrevDirItem := CurDirItem;
//caption := caption + '$';
ToolBtnBack.Enabled := true;
end;
CurDirItem := ShareListView.Selected;
ChangeBtnStatus;
//============================================================end;
Const
MyDocDir = 'C:\My Documents';
PersonDir = '3hSoft';
Var
I : Word;
SubNodeName : array [1..5] of ShortString;
RootNode, SubNode : TTreeNode;
P : PString;
begin
SubNodeName[1] := '便笺';
SubNodeName[2] := '发件箱';
SubNodeName[3] := '联系人';
SubNodeName[4] := '任务';
SubNodeName[5] := '日记';
TV1.Items.Clear;
TV1.Items.BeginUpdate;
New(P);
P^ := MyDocDir + '\' + PersonDir;
RootNode := TV1.Items.AddObject(Nil, '个人文件夹', P);
// 此 Node 的图标已对 Images 属性中取第 0 个了。
For I := 1 to 5 do
begin
New(P);
P^ := MyDocDir + '\' + PersonDir + '\' + SubNodeName[I];
SubNode := TV1.Items.AddChildObject(RootNode, SubNodeName[I], P);
// 如果不想使用图标的话请删除以下两行
SubNode.ImageIndex := I;
SubNode.SelectedIndex := I;
end;
TV1.Items.EndUpdate;
end;