第六章 文管理(三).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.画出每个自画项目    这在TabSet的OnDrawTab事件处理过程中完成。这一事件处理过程的参数中包含了待画项目索引、画板、待画区域、是否被选中等。这里我们只利用了前三个参数。事实上利用最后一个参数,我们可以对被选中的标签进行一些特殊的视觉效果处理。这一工作就留给读者自己去完成。  procedure TFMForm.DriveTabSetDrawTab(Sender: TObject; TabCanvas: TCanvas; R: TRect; Index: Integer; Selected: Boolean); var Bitmap: TBitmap; begin Bitmap := TBitmap(DriveTabSet.Tabs.Objects[Index]); with TabCanvas do begin Draw(R.Left, R.Top + 4, Bitmap); TextOut(R.Left + 2 + Bitmap.Width, R.Top + 2, DriveTabSet.Tabs[Index]); end; end;  6.4.5 文件管理基本功能的实现    在子窗口的File菜单中,定义了文件管理的基本功能,它们是:   ● Open :打开或运行一个文件(从文件列表框双击该文件可实现同样效果) ● Move :文件在不同目录间的移动   ● Copy :文件拷贝   ● Delete :文件删除   ● Rename :文件更名   ● Properties :显示文件属性  6.4.5.1 文件打开    文件打开功能可以运行一个可执行文件,或把文件在与之相关联的应用程序中打开。文件总是与创建它的应用程序相关联,这种关联可以在Windows的文件管理器中修改。要注意的是:文件的关联是以后缀名为标志的,因而对一个文件关联方式的修改将影响所有相同后缀名的文件。   文件打开功能实现的关键是利用了Windows API函数ShellExecute 。由于Windows API函数的参数要求字符串类型是PChar,而Delphi中一般用的是有结束标志的String类型,因此为调用方便我们把这一函数进行了重新定义如下。  function ExecuteFile(const FileName, Params, DefaultDir: String; ShowCmd: Integer): THandle; var zFileName, zParams, zDir: array[0..79] of Char; begin Result := ShellExecute(Application.MainForm.Handle, nil, StrPCopy(zFileName, FileName), StrPCopy(zParams, Params), StrPCopy(zDir, DefaultDir), ShowCmd); end;   以上函数在fmxutils单元中定义。fmxutils是一个自定义代码单元。   有关ShellExecute中各参数的具体含义读者可查阅联机Help文件。   StrPCopy把一个Pascal类型的字符串拷贝到一个无结束符的PChar类型字符串中。   在子窗口的Open1Click事件处理过程中:  procedure TFMForm.Open1Click(Sender: TObject); begin with FileList do ExecuteFile(FileName, , Directory, SW_SHOW) ; end;   如果FileList允许显示目录的话(即FileType属性再增加一项ftDirectory),那么对于一个目录而言,打开的含义应该是显示它下边的子目录和文件。程序修改如下。    procefure TFMForm.Open1Click(Sender: Tobject); begin With FileList do begin if HasAttr(FileName,faDirectory) then DirectoryOutline.Directory := FileName else ExecuteFile(FileName, ,Directory,SW_SHOW); end; end;  HasAttr是一个fmxutils单元中的自定义函数,用于检测指定文件是否具有某种属性。  function HasAttr(const FileName: String; Attr: Word): Boolean; begin Result := (FileGetAttr(FileName) and Attr) = At

文档评论(0)

enxyuio + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档