Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 显示大小和格式_Delphi_Delphi 10 Seattle - Fatal编程技术网

Delphi 显示大小和格式

Delphi 显示大小和格式,delphi,delphi-10-seattle,Delphi,Delphi 10 Seattle,在我的VCL表格申请中,我添加了: 钮扣 OpenDialog 编辑 列表视图 使用opendialog打开文件时,如何在ListView列中显示文件大小和格式 下面是我正在尝试的代码-请纠正我的错误,或者我必须添加什么函数才能在ListView中显示 //=============================== procedure TForm1.BntOpen1Click(Sender: TObject); var LI: TListItem; begin if OpenDia

在我的VCL表格申请中,我添加了:

  • 钮扣
  • OpenDialog
  • 编辑
  • 列表视图
  • 使用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;
    //===========================
    

    谢谢

    首先,您缺少一个
    开始。。结束配对

    begin
      if OpenDialog1.Execute then 
      begin  // missing
        // ...
        // fetch file size and update `TListView` here
        // ...
      end;  // missing
    end;
    
    然后,为了获得文件大小,声明一个变量
    size:int64
    并使用
    t文件流

    var
      size: int64;
    ...
        fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite);
        try
          size := fs.Size;
        finally
          fs.Free;
        end;
    
    请务必阅读文件模式并共享常量

    您是否使用listview的
    列设计器
    声明了所需的列? 如果没有,请右键单击
    t列表视图
    ,然后从菜单中选择
    列设计器

    您正确地向listview添加了一个项目,但您从未为其分配标题,因此我将分配文件名,这样就可以清楚地知道大小和类型与哪个文件相关

      LI.Caption := OpenDialog1.FileName;
    
    然后将文件大小添加到子项中

      LI.SubItems.Add(IntToStr(size));
    
    最后是文件类型

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

    请帮我们把你的问题弄清楚。这将需要花费一些时间来更详细地解释你所坚持的观点。而且,“n”不是一个词,缺少的是一个OpenDialog。然后在按钮单击处理程序中编写一些代码。我为您编辑了代码格式。如果您还包括表单的类型定义,您可以删除您的组件列表。对不起,朋友们,我的英语不好。。但现在我已经编辑了我的问题。我希望你们能理解。@Tom,如果你们不介意的话,可以发布你们的代码吗。非常感谢你们的帮助。现在它可以正常工作了。你们真的很棒……谢谢。@meitei很高兴我能帮上忙。现在,我可以看到,您还没有访问过描述SO网站工作原理的网站,请访问。我是这个应用程序的新用户,这就是我犯错误的原因,但现在我是根据你的建议才知道的。以后我会尽量不犯错误,按照你说的去做。