Results 1 to 3 of 3

Thread: FileSystemWatcher in Delphi2007 op XP ??

  1. #1

    FileSystemWatcher in Delphi2007 op XP ??

    Delphi2007. in XP omgeving.

    Ik wil een bestand in de gaten houden, en heb daarvoor system.IO.FileSystemWatcher gevonden, met genoeg voorbeelden op Internet. Ook op dit forum heb ik een entry gevonden, uit 2003 (dus je zou verwachten dat er met Delphi2007 ook mogelijkheden zijn) maar dat heeft me niet verder geholpen. Dus het _zou_ moeten kunnen. alleen krijg ik het op een of andere manier niet gecompileerd..

    Code snipplet:

    Code:
    var
      FW: FileSystemWatcher ;
      CR : WaitForChangedResult ;
    
    
    begin
      try
        FW := FileSystemWatcher.create (TempDirectory);  // TempDirectory verwijst naar de directory
        FW.Filter := ExtractFilename(bestand) ;                  // Alleen dit bestand - eerder zelf aangemaakt
        FW.NotifyFilters := NotifyFilters.Changed;
        CR := FW.WaitForChanged(WatcherChangeTypes.Changed, iTo * 1000);    // iTO  = 5, dus  Maximaal 5 seconden wachten
        if CR = TimedOut then
    ....
    probleem is dat dit geeft:

    Undeclared identifier: 'FileSystemWatcher'
    Undeclared identifier: 'WaitForChangedResult'
    Eigenlijk logisch omdat dit (gezien gevonden voorbeelden) voorzien had moeten worden van namespace system.IO, dus:

    Code:
      FW: system.IO.FileSystemWatcher ;
    maar ook dat wordt niet geaccepteerd:

    E2003 Undeclared identifier: 'IO'
    (vreemd is ook dat dan ook gegenereerd wordt:
    E1030 Invalid compiler directive: 'CR'
    maar dat kan een hik van de compiler zijn door die eerdere fout)

    'system" alleen is niet voldoende, want ook dan wordt FileSystemWatcher niet gevonden (wat te verwachten is omdat dat in IO zit). "IO" is niet gekend....

    "system"' of "system.IO" opnemen in uses clause is ook niet mogelijk, want dan blijkt die dubbel te zijn benoemd - dat is niet zo, dus ik vermoed dat die standaard meegenomen wordt.

    Derhalve de vraag: Hoe krijg ik FileSystemWatcher geaccepteerd?

  2. #2
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,140
    In 2003 was er ook Delphi.NET, en die gebruikte toen al namespaces. Normaal Delphi deed dat niet echt tot Delphi XE2. De type namen zonder "T" zijn ook al verdacht.

    Dus mogelijk heb je wat .NET only te pakken.

  3. #3
    Ik denk dat je voor Delphi 2007 gewoon met de Windows API aan de gang moet.
    Dat zou SHChangeNotify zijn.

    Hier een voorbeeld:
    https://stackoverflow.com/a/480325/1037511

    Of zoek op SHChangeNotify delphi en je vindt voorbeelden zat.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •