名前 題名 ▼ たてぐやさん > plFolderWatcherを、Directoryを別々にして複数動かしたいと思い、作成し > ました。フォーム上にplFolderWatcherを必要数だけ置くと、べたべたなソース > になってしまうので、以下のようにしました。長くて済みません。 > var > FolderWatch : array[0..15] of TplFolderWatcher; > > procedure TFrmSet.FormCreate(Sender: TObject); > {===================================================================== > 初期化 > ======================================================================} > var > p : integer; > Options : TplFolderEventOptions; > begin > Options := []; > Options := Options + [evt_RENAMEITEM]; > Options := Options + [evt_CREATE]; > Options := Options + [evt_DELETE]; > Options := Options + [evt_MKDIR]; > Options := Options + [evt_RMDIR]; > for p := 0 to 15 do begin > inCopy[p] := false; > FolderWatch[p] := tplFolderWatcher.Create(Application); > FolderWatch[p].Tag := p; > FolderWatch[p].OnChange := plFolderWatcher1Change; > FolderWatch[p].StopWatch; > FolderWatch[p].Options := Options; > uList[p] := Tstringlist.Create; > end; > > これで15個のplFolderWatcherがCreateされるはずです。そしてイベントが > 発生すると、どのplFolderWatcherでイベントが発生してもplFolder1Changeが > 呼ばれます。そこで > > procedure TFrmSet.plFolderWatcher1Change(Sender: TObject; AEvent: Integer; > BeforeFullPath, BeforeFileName, AfterFullPath, AfterFileName: String); > var > ACaption : String; > p : integer; > begin > : > end; > > として、個々のplFolderWatcherのTag値で何番目のplFolderWatcherから呼ば > れたか切り分けようとしています。ところが、実際はどのplFolderWatcher.Di > rectoryでイベントを起こしても、TComponent(Sender).Tagの値は有効になっ > ているplFolderWatcher配列の最後の番号しか返ってきません。 > たとえば、FolderWatch[0].DirectoryがD:\AAA、FolderWatch[0].Directory > がD:\BBBだとして、この二つがWatchStartしている場合、D:\AAAでもD:\BBBで > も帰ってくる値(Tagに設定したintreger)は'1'しか戻ってきません。 > もしかしてplFolderWatcherは複数使えないのでしょうか? GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link