0

ShellListView1 を必要とする Delphi 7 のプロジェクトに取り組んでいるので、.PNG または .JPG ファイルのみを表示します。

フォルダと特定のファイル タイプ (例: ' .exe; .bat')のみを表示するにはどうすればよいですか?

マスキングを使用した ShellListView1 コンポーネントであると言われましたが、試した Web サイトはオフラインです。

4

2 に答える 2

5

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;
于 2013-03-10T19:12:57.577 に答える
1
uses Masks;
...
procedure TForm1.ShellListView1AddFolder(Sender: TObject;
  AFolder: TShellFolder; var CanAdd: Boolean);
begin
  CanAdd := AFolder.IsFolder or MatchesMask(AFolder.PathName, '*.exe');
end;

関数 MatchesMask()は True を返します。これは、文字列値がマスクで指定された形式に一致する場合です。

構文的に有効なマスクは、リテラル文字、セット、およびワイルドカードで構成されます。ワイルドカードは、アスタリスク (*) または疑問符 (?) です。アスタリスクは任意の数の文字に一致します。疑問符は、任意の 1 文字に一致します。

于 2014-08-27T07:59:28.920 に答える