2013-03-10 114 views

回答

4

您可以为OnAddFolder事件编写处理程序,只要项目将添加到列表中,该事件就会触发。下面的代码允许以*.exe*.bat扩展仅添加文件到列表:

procedure TForm1.ShellListView1AddFolder(Sender: TObject; 
    AFolder: TShellFolder; var CanAdd: Boolean); 
var 
    FileExt: string; 
begin 
    CanAdd := not AFolder.IsFolder; 
    if CanAdd then 
    begin 
    FileExt := ExtractFileExt(AFolder.PathName); 
    CanAdd := (FileExt = '.exe') or (FileExt = '.bat'); 
    end; 
end; 
1
uses Masks; 
... 
procedure TForm1.ShellListView1AddFolder(Sender: TObject; 
    AFolder: TShellFolder; var CanAdd: Boolean); 
begin 
    CanAdd := AFolder.IsFolder or MatchesMask(AFolder.PathName, '*.exe'); 
end; 

功能MatchesMask()回报真正是一个字符串值由面具specifed的格式相匹配。

句法有效掩码由文字字符,集合和通配符组成。 通配符是星号(*)或问号(?)。星号匹配任意数量的字符。问号与单个任意字符匹配。

相关问题