Einzelnen Beitrag anzeigen

Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#8

Re: auf Änderungen im Ordner reagieren

  Alt 30. Apr 2004, 03:07
Zitat von Luckie:
Stichwort für das MSD: MSDN-Library durchsuchenFindFirstChangeNotification.
Hi,

ich habe dashier in einem Buch dazu gefunden. Nur wie rufe ich das ganze jetzt auf?

Delphi-Quellcode:
unit DirChangeThread;

interface

Uses
  Classes, Windows, Dialogs;

Type TDirChange = Class(TThread)
  Private
  { Private-Deklarationen }
    Handle : THandle;
    Path : String;
  Protected
    Procedure Execute; Override;
    Procedure RefreshListBox;
    Destructor Destroy;
  Public
  { Public-Deklarationen }
    Constructor Create(Path : String);
  End;

implementation

Uses
  Unit1;

Constructor TDirChange.Create(Path : String);
Begin
  Inherited Create(False);
  Path := Path;
  FreeOnTerminate := True;
End;

Procedure TDirChange.Execute;
Begin
  Handle := FindFirstChangeNotification(PChar(Path), FALSE, FILE_NOTIFY_CHANGE_NAME);
  If Handle <> INVALID_HANDLE_VALUE Then
    While True
    Begin
      If WaitForSingleObject(Handle, 500) = WAIT_OBJET_0 Then
      Begin
        Synchronize(RefreshListBox);
      End;
      FindNextChangeNotification(Handle);
      If Terminated Then
        Break;
    End;
End;

Procedure TDirChange.RefreshListBox;
Begin
  Form1.FileListBox1.Update;
End;

Destructor TDirChange.Destroy;
Begin
  If Handle <> NULL Then
    FindCloseChangeNotification(Handle);
  Inherited Destroy;
End;

end.
Vielen Dank!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat