Реферат: Робота з "потоками" в середовищі Delphi
begin
fn:= FindFirstChangeNotification (pChar(DirName), True,
FILEJTOTIFY_CHANGE_FILE_NAME);
repeat
r:= WaitForSingleObject (fn, 2000);
if r = WAIT_OBOECT_0 then
Synchronize (Forml. UpdateList);
if not FindNextChangeNotification(fn) then
break;
until Terminated;
FindCloseChangeNotification(fn);
end;
На головній формі повинні знаходитися компоненти, потрібні для вибору обстежуваної теки, а також компонент TListBox, в який записуватимуться імена файлів:
procedure TForml. ButtonlClick (Sender: TObject);
var dir: string; begin
if SelectDirectory (dir, [], 0)
then begin
Editl. Text:= dir; DirName:= dir;
end;
end;
procedure TForml. UpdateList;
var SearchRec: TSearchRec;
begin
ListBoxl. Clear;
FindFirst (Editl. Text+'\*.*', faAnyFile, SearchRec); repeat ListBoxl. Items. Add (SearchRec. Name);
until FindNext(SearchRec)<> 0;
FindClose(SearchRec);
end;
Додаток готовий. Щоб воно стало повнофункціональним, передбачте в ньому механізм перезапуску потоку при зміні обстежуваної теки.