给你几个函数,自己看帮助,很简单:
findfirst
findnext
findclose
shgetfileinfo其他的就是TLietview,TImageList的使用了,只要让Listview.imagelist.handle:=系统imagelist的handle,(用shgetfileinfo得到),需要的listitem的imageindex再用shgetfileinfo查找就可以。
findfirst
findnext
findclose
shgetfileinfo其他的就是TLietview,TImageList的使用了,只要让Listview.imagelist.handle:=系统imagelist的handle,(用shgetfileinfo得到),需要的listitem的imageindex再用shgetfileinfo查找就可以。
解决方案 »
- 在SocketConnection的三层中,客户端的ClientDataSet1同时执行多个SQL操作的事务应怎么做?
- 【专家榜】2005-09专家榜名单
- 1000分另开贴感谢的感情问题!(up者有分,同时请求版主不要删我这个贴)
- 运行时出错??
- DBGrid的滚动问题
- 寻找兼职程序员(限北京)有意者请与我联系¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
- 100分!求Delphi 4 编程技术内幕 电子版(电子工业出版社)!
- 窗体改变大小的代码求助
- 如何才能提高SQL server 的查询速度?
- 数据库高手请看过来:(数据存储问题)如何保存一个类似二叉树(还记得数据结构么?)的网络拓扑图??
- 怎樣對計算字段求累計和﹖如差額是計算字段﹐要求累計差額﹐怎么辦﹖請各位高手指點﹗
- 将数据导出到Excel的问题
...
ListView1.ViewStyle:=vsreport; //这行重要
...
ListItem:=ListView1.Items.Add;
ListItem.Caption;='文件名';
ListItem.ImageIndex:=1;
ListItem.SubItems.Add('文件大小');
ListItem.SubItems.Add('文件类型');
ListItem.SubItems.Add('修改时间');
后面那个函数怎么用呀!我是菜鸟的,各位大虾帮帮忙!
我的问题不是创建Columns,而是用TListView显示TOpenDialog打开的那个文件的文件名……等信息,分别显示在相应的Columns里
---Form1.dfm---
object Form1: TForm1
Left = 192
Top = 107
Width = 544
Height = 375
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
OnShow = FormShow
PixelsPerInch = 96
TextHeight = 13
object ListView1: TListView
Left = 4
Top = 4
Width = 525
Height = 205
Columns = <
item
Caption = 'Name'
Width = 150
end
item
Alignment = taRightJustify
Caption = 'Size'
Width = 80
end
item
Caption = 'Type'
Width = 120
end
item
Caption = 'Date Modified'
Width = 150
end>
TabOrder = 0
ViewStyle = vsReport
end
object Button1: TButton
Left = 4
Top = 216
Width = 101
Height = 25
Caption = 'Add File'
TabOrder = 1
OnClick = Button1Click
end
object Button2: TButton
Left = 396
Top = 216
Width = 135
Height = 25
Caption = 'Change ViewStyle'
TabOrder = 2
OnClick = Button2Click
end
object OpenDialog1: TOpenDialog
Filter = '所有文件|*.*'
Options = [ofOverwritePrompt, ofHideReadOnly, ofEnableSizing]
Title = '选择文件'
Left = 152
Top = 260
end
end---Unit1.pas---
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ShlObj, ComObj, ShellAPI, CommCtrl, MaskUtils;type
TForm1 = class(TForm)
ListView1: TListView;
Button1: TButton;
OpenDialog1: TOpenDialog;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
SmallImgListHandle, LargeImgListHandle: Cardinal;
function GetFileInfo(fName: string; var fLastWriteDate: TDate;
var fLastWriteTime: TTime): TByHandleFileInformation;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject); function DesktopShellFolder: IShellFolder;
begin
OleCheck(SHGetDesktopFolder(Result));
end;var
P: PWideChar;
NumChars, HR, uFlags: LongWord;
AIShellFolder: IShellFolder;
NewPIDL: PItemIDList;
FileInfo: TSHFileInfo;
AListItem: TListItem;
LMDate: TDate;
LMTime: TTime;
AByHandleFileInfo: TByHandleFileInformation;
FileSize: LongWord;
begin
if not OpenDialog1.Execute then exit;
NumChars := Length(OpenDialog1.FileName); AByHandleFileInfo := GetFileInfo(OpenDialog1.FileName, LMDate, LMTime); P := StringToOleStr(OpenDialog1.FileName); AIShellFolder := DesktopShellFolder;
uFlags := SFGAO_FILESYSTEM;
HR := AIShellFolder.ParseDisplayName(0,
nil,
P,
NumChars,
NewPIDL,
uFlags);
if not HR = S_OK then exit; AListItem := ListView1.Items.Add;
AListItem.Caption := ExtractFileName(OpenDialog1.FileName);
FillChar(FileInfo, SizeOf(FileInfo), 0);
SHGetFileInfo(PChar(NewPIDL),
0,
FileInfo,
SizeOf(FileInfo),
SHGFI_PIDL or SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
AListItem.ImageIndex := FileInfo.iIcon;
FileSize := AByHandleFileInfo.nFileSizeHigh * $FFFF + AByHandleFileInfo.nFileSizeLow;
AListItem.SubItems.Append(IntToStr(FileSize) + ' bytes');
AListItem.SubItems.Append(string(FileInfo.szTypeName));
AListItem.SubItems.Append(DateToStr(LMDate) + ' ' + TimeToStr(LMTime));
end;procedure TForm1.FormCreate(Sender: TObject);
var
FileInfo: TSHFileInfo;
begin
SmallImgListHandle := SHGetFileInfo('C:\', { Do not localize }
0, FileInfo, SizeOf(FileInfo), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
LargeImgListHandle := SHGetFileInfo('C:\', { Do not localize }
0, FileInfo, SizeOf(FileInfo), SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
end;function TForm1.GetFileInfo(fName: string; var fLastWriteDate: TDate;
var fLastWriteTime: TTime): TByHandleFileInformation;
var
FileHandle: HWND;
FileInfo: TOFStruct;
LocalTime: TFileTime;
ReturnTime: _SYSTEMTIME;
begin
FileHandle := Windows.OpenFile(PChar(fName), FileInfo, OF_READ);
if FileHandle = 0 then
begin
ShowMessage('Can not locate the specified file.');
Exit;
end;
try
GetFileInformationByHandle(FileHandle, Result);
FileTimeToLocalFileTime(Result.ftLastWriteTime, LocalTime);
FileTimeToSystemTime(LocalTime, ReturnTime);
fLastWriteDate := EncodeDate(ReturnTime.wYear, ReturnTime.wMonth, ReturnTime.wDay);
fLastWriteTime := EncodeTime(ReturnTime.wHour, ReturnTime.wMinute,
ReturnTime.wSecond, ReturnTime.wMilliseconds);
finally
Windows.CloseHandle(FileHandle);
end;
end;procedure TForm1.FormShow(Sender: TObject);
begin
if ListView1.HandleAllocated then
begin
if SmallImgListHandle <> 0 then
SendMessage(ListView1.Handle, LVM_SETIMAGELIST, LVSIL_SMALL, SmallImgListHandle);
if LargeImgListHandle <> 0 then
SendMessage(ListView1.Handle, LVM_SETIMAGELIST, LVSIL_NORMAL, LargeImgListHandle);
end;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
with ListView1 do
case ViewStyle of
vsIcon: ViewStyle := vsSmallIcon;
vsSmallIcon: ViewStyle := vsList;
vsList: ViewStyle := vsReport;
vsReport: ViewStyle := vsIcon;
end;
end;end.
? TListView里怎么显示文件的图标、大小、类型、修改时间? (happyjoe )