掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
特定の拡張子のファイルをTShell Tree Viewに追加表示させるには? (ID:17546)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
さゆみん: 「ナカザワさ〜ん、グリコですぅ♪」 なかざわ: 「お手上げっチュウことかい」 エリック: 「ヒントの #0 がナンのことだか分かりませ〜ん」 なかざわ: 「そなら、とりあえず...このコードでやってみいや」 procedure TForm1.ShellTreeView1AddFolder(Sender: TObject; AFolder: TShellFolder; var CanAdd: Boolean); begin if (not AFolder.IsFolder)and (LowerCase(ExtractFileExt(AFolder.DisplayName)) <> '.txt'#0) then CanAdd := False; end; エリック: 「お〜!、*.txtファイルが表示されました! これって前のコードの '.txt' を '.txt'#0 に変えただけですよねぇ」 さゆみん: 「フシギ〜、 '.txt'#0 だとナンでうまくいくんでしょ♪?」 なかざわ: 「それはやな〜、DisplayNameが "PChar型の長いファイル名+PChar型のDOSファイル名" の形になっとるンからや」 さゆみん: 「あれっ?、でもなんか変ですぅ。表示されない.txtファイルがあるんですけどぉ...」 なかざわ: 「だから、"とりあえず"言うたやろ。8文字以下のファイル名は "DOSファイル名" 空文字の場合あるン。その時は拡張子 '.txt'#0#0 や」 エリック: 「えっ?、それじゃぁ、'.txt'#0 と '.txt'#0#0 の両方のチェックが必要ですよね」 なかざわ: 「そないなことせんでも、DisplayNameをPCharにキャストしといたらエエやん」 procedure TForm1.ShellTreeView1AddFolder(Sender: TObject; AFolder: TShellFolder; var CanAdd: Boolean); begin if (not AFolder.IsFolder)and (LowerCase(ExtractFileExt(PChar(AFolder.DisplayName))) <> '.txt') then CanAdd := False; end; エリック: 「おぉ〜、カンペキ〜!」 さゆみん: 「もぅ〜、最初っからチャンと教えてくれればイイのにぃ♪」 なかざわ: 「おまえのウソ泣き見たかったンよ」 さゆみん: 「アレぇ〜(^^ゞ...バレてたンですかぁ」 エリック: 「ところで...」 なかざわ: 「まだナンかあるんか?」 エリック: 「Delphi6 Personalで、ShellCtrls.pasの中に'OnAddFolder'の文字が無いとか、AddFolderメソッドが無いとかの質問ありますけど...」 さゆみん: 「'OnAddFolder'の文字は、220行目と235行目にありますぅ。だけど今回は〜ShellCtrls.pasの中身をイジル必要無いですよね♪」 エリック: 「それに OnAddFolderイベントハンドラは、オブジェクトインスペクタのイベント項目の右欄ダブルクリックで自動的にコードに挿入されるし...」 さゆみん: 「でも〜、VCLソースの中身を見るとイロイロ勉強になりますよね♪」 なかざわ: 「おっ、イッチョマエのこと言うとるやん」 さゆみん: 「そりゃぁ〜、ワタシだってナカザワさんの弟子ですから〜」 なかざわ: 「ダレがウチの弟子やねん」 さゆみん: 「ナカザワさ〜ん、カワユイ弟子にお昼おごってくれますよね♪?」 なかざわ: 「しらん、しらん」
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.