AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi auf Änderungen im Ordner reagieren
Thema durchsuchen
Ansicht
Themen-Optionen

auf Änderungen im Ordner reagieren

Ein Thema von mumu · begonnen am 27. Apr 2004 · letzter Beitrag vom 1. Mai 2004
Antwort Antwort
Seite 1 von 3  1 23      
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#1

auf Änderungen im Ordner reagieren

  Alt 27. Apr 2004, 10:08
Wie kann ich, wenn eine Datei in einem Ordner erstellt, geändert bzw. gelöscht wird im Delphi darauf reagieren, dass sozusagen ein Ereignis ausgelöst wird.

danke schonmal..
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: auf Änderungen im Ordner reagieren

  Alt 27. Apr 2004, 10:12
torry.net->Files & Drives->Notification
Andreas
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#3

Re: auf Änderungen im Ordner reagieren

  Alt 27. Apr 2004, 11:22
ja danke, da sind jede menge komponenten dazu.

kann mir vielleicht jemand noch erklären, wie ich allgemein an dieses problem rangeh?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: auf Änderungen im Ordner reagieren

  Alt 27. Apr 2004, 12:45
Stichwort für das MSD: MSDN-Library durchsuchenFindFirstChangeNotification.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#5

Re: auf Änderungen im Ordner reagieren

  Alt 27. Apr 2004, 12:48
Bei mir gibt's bei Delphi die Komponente TShellChangeNotifier im Reiter Beispiele/Samples bei Delphi 6 und 7.
Wenn dich die API's interessieren, die dafür genutzt werden, dann schau dir einfach den Quelltext dazu von Borland an

Übrigens bei Delphi 8 (also .NET) ist es der FileSystemWatcher
Alexander
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#6

Re: auf Änderungen im Ordner reagieren

  Alt 27. Apr 2004, 13:18
danke luckie... das wollte ich wissen!!! und auch thx an alexander, werd mir die borland quellcodes auch mal reinziehen
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: auf Änderungen im Ordner reagieren

  Alt 27. Apr 2004, 21:30
Moin Mumu,

für NT basierte Systeme kommt auch noch ReadDirectoryChangesW in Frage.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
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, 02: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
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: auf Änderungen im Ordner reagieren

  Alt 30. Apr 2004, 02:21
Das ist doch ein ganz normales VCL-Thread-Objekt. Einfach wie jedes andere Objekt erzeugen. Weitere Infos hier: http://Tutorials.luckie-online.de
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

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

Re: auf Änderungen im Ordner reagieren

  Alt 30. Apr 2004, 02:38
Hi,

leider hab ich noch nie mit Threads gearbeitet.

Also ich habe im Buch den Aufruf so da stehen:

Delphi-Quellcode:
  If Kontrolle <> Nil Then
    Kontrolle.Terminate;
  Kontrolle := TDirChange.Create(DirectoryListBox1.Directory);
Jetzt weis ich aber nicht was Kontrolle sein soll.

2. ist wohl in dem Thread n Fehler drin. Denn der Compiler meckert hier rum:

Delphi-Quellcode:
Destructor TDirChange.Destroy;
Begin
  If Handle <> NULL Then
    FindCloseChangeNotification(Handle);
  Inherited Destroy;
End;
Hinter NULL: Undefinierter Bezeichner NULL!

Was muss da geändert werden?

Danke!
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
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz