2016-04-28 44 views
-1

在我的VCL窗体应用程序我已经加入:显示大小和格式

  1. 按钮
  2. OpenDialog
  3. 编辑
  4. 的ListView

当我打开与opendialog文件,如何我是否在ListView列中显示文件大小和格式?

这里是我试图代码 - 请改正我的错误,或者有什么功能我必须添加ListView中显示?

//=============================== 
procedure TForm1.BntOpen1Click(Sender: TObject); 
var 
    LI: TListItem; 
begin 
    if OpenDialog1.Execute then 
    LI := ListView1.Items.Add; 
    LI.SubItems.Add(Format(OpenDialog1.FileName, [0])); 
end; 
//=========================== 

感谢

+0

请通过使您的问题更清楚帮助我们。这将涉及花费一些时间更详细地解释你所困扰的内容。另外,“n”不是一个单词。 –

+0

缺少的是OpenDialog。然后在按钮点击处理程序中编写一些代码。 –

+0

我编辑了你的代码格式。如果您还包括表单的类型定义,则可以删除您拥有的组件的列表。 –

回答

0

首先,你缺少一个begin .. end;对。

begin 
    if OpenDialog1.Execute then 
    begin // missing 
    // ... 
    // fetch file size and update `TListView` here 
    // ... 
    end; // missing 
end; 

然后获取文件大小,声明一个变量size: int64;和使用TFileStream

var 
    size: int64; 
... 
    fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite); 
    try 
     size := fs.Size; 
    finally 
     fs.Free; 
    end; 

请务必在文件模式和共享常数

读了你有没有用Column Designer的listview来声明你需要的列吗? 如果不行,就TListView单击鼠标右键,从菜单中选择Column Designer

您正确添加项目到ListView但你永远不分配一个标题,所以我会指定的文件名,所以该文件的大小和类型都与那将是清楚的。

LI.Caption := OpenDialog1.FileName; 

然后添加文件的大小成子项

LI.SubItems.Add(IntToStr(size)); 

最后文件类型

LI.SubItems.Add(ExtractFileExt(OpenDialog1.FileName)); 
+0

非常感谢您的大力帮助。现在它的工作就像我希望它真的很棒......谢谢。 – meitei

+0

@meitei很高兴能帮到你。现在,我可以看到你还没有访问[** tour **](http://stackoverflow.com/tour),它简短地描述了SO网站的工作原理,请这样做。还可以看看[**如果有人回答**,我该怎么办](http://stackoverflow.com/help/someone-answers)。 –

+0

是这个应用程序的新用户,这就是为什么我犯了错误,但现在我通过您的建议来了解。将来我会尽量不要犯错误并按照你的说法行事。 – meitei