Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi auf Änderungen im Ordner reagieren (https://www.delphipraxis.net/21048-auf-aenderungen-im-ordner-reagieren.html)

Luckie 30. Apr 2004 03:50

Re: auf Änderungen im Ordner reagieren
 
Kontrolle ist wohle ien Variable vom Typ TDirChange. Sieht man doch hier:
Delphi-Quellcode:
Kontrolle := TDirChange.Create(DirectoryListBox1.Directory);
Das sind Grundlagen!

Und aus was für eine Buch hast du das Beispiel? NULL ist das C/C++ Gegenstück zu Nil in Delphi.

Mackhack 30. Apr 2004 04:02

Re: auf Änderungen im Ordner reagieren
 
Hi,

so meinte ich die Frage aber net auf was Kontrolle ist. Denn ich wollte eher wissen warum dann kein
Var-Abschnitt ist wie z. B.:

Delphi-Quellcode:
Var
  Kontrolle : TDirChange;
Und dann eben erst der Code initialisiert wird wie z. B. bei IniFiles oder was auch immer auch mit:

Delphi-Quellcode:
Begin
  Kontrolle := TDirChange.Create(...);
Desweiteren:

Ich habe Nil verwendet. Operator kann auf diesen Operanten nicht angewendet werden!

Luckie 30. Apr 2004 12:57

Re: auf Änderungen im Ordner reagieren
 
Zitat:

Zitat von Mackhack
Also ich habe im Buch den Aufruf so da stehen:

Delphi-Quellcode:
  If Kontrolle <> Nil Then
    Kontrolle.Terminate;
  Kontrolle := TDirChange.Create(DirectoryListBox1.Directory);

Wenn du mir so ein Bruchstück vom Code zeigst, woher um Gotteswillen soll ich wissen,d as es keien var-Abschnitt oder somnst was gibt?

teste mal auf <> 0. Ich vermute mal das handle vom Typ THandle oder Cardinal ist.

Mackhack 1. Mai 2004 00:03

Re: auf Änderungen im Ordner reagieren
 
Hi,

so sieht mein Code jetzt aus:

Delphi-Quellcode:
procedure TForm1.DirectoryListBox1Change(Sender: TObject);
Var
  Kontrolle : TDirChange;
begin
  If Kontrolle <> 0 Then
    Kontrolle.Terminate;
  Kontrolle := TDirChange.Create(DirectoryListBox1.Directory);
end;
Jetzt kommt in der Zeile <> 0 als Fehler:
Inkompatible Typen :-(

Was mach ich denn da nur falsch?

Christian Seehase 1. Mai 2004 00:14

Re: auf Änderungen im Ordner reagieren
 
Moin MackHack,

tausch mal 0 gegen nil aus.

Mackhack 1. Mai 2004 01:02

Re: auf Änderungen im Ordner reagieren
 
Hallo,

weis jemand warum ich als Hinweis folgendes bekomme:
Auf Kontrolle zugewiesener Wert wird niemals benutzt.

Weis jemand wie ich jetzt mit Hilfe dieses Codes auch rausbekommen kann welche Dateien verändert wurden?

Danke!

Luckie 1. Mai 2004 12:59

Re: auf Änderungen im Ordner reagieren
 
Zitat:

Zitat von Mackhack
weis jemand warum ich als Hinweis folgendes bekomme:
Auf Kontrolle zugewiesener Wert wird niemals benutzt.

Weil auf Kontrolle zugewiesener Wert niemals benutzt wird. :roll:

Mackhack 1. Mai 2004 17:47

Re: auf Änderungen im Ordner reagieren
 
:-)

Lucky kannst du mir dabei noch bitte helfen wie ich rausbekommen kann welche Datei verändert wurde?

Vielen Dank!

toms 1. Mai 2004 17:48

Re: auf Änderungen im Ordner reagieren
 
Hi,

Find*ChangeNotification() liefert dir leider nicht die Datei zurück, welche verändert worden ist.

Du müsstest einen "Snapshot" des Verzeichnisses erstellen, welches überwacht wird und wenn Find*ChangeNotification() eine Veränderung mitteilt, wieder einen "Snapshot" erstellen.
Am Schluss werden dann die beiden Snapshots verglichen und
du weisst dann, welche Datei verändert worden ist.

Unter NT gibt's die ReadDirectoryChangesW():

http://msdn.microsoft.com/library/de...rychangesw.asp

Mackhack 1. Mai 2004 18:11

Re: auf Änderungen im Ordner reagieren
 
Aber macht das ReadDirectoryChangesW nicht das gleiche wie das FindFirstChangeNotification auch?

Oder verstehe ich grad den Text in der MSDN nicht richtig?

Wenn nicht, könntest du mir da vielleicht ein wenig helfen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz