Delegates
Posted: Fri Dec 20, 2019 7:05 am
Hallo Wolfgang,
den Rückgabewert logic hatte ich schon eingebaut, trotzdem kommt der Fehler!
den Rückgabewert logic hatte ich schon eingebaut, trotzdem kommt der Fehler!
Code: Select all
DELEGATE EnumWindowsProc_delegate( hWnd AS PTR, aWindows AS IntPtr ) AS LOGIC // anstelle "aWindows AS ARRAY"
Fast zeitgleich - als ob es abgesprochen gewesen wäreSHirsch wrote:Hallo
der DELEGATE hat eine andere Signatur als die FUNCTION
Der zweite Parameter ist im DELEGATE ARRAY und in der FUNCTION IntPtr.
Diese müssen gleich sein. Bei Wolfgang ist das IntPtr
Stefan
korrektIch lese mal kompatibel = "gleich" - also nicht nur Param-typen sondern eben auch der Rückgabetyp muß übereinstimmen...
Code: Select all
USING System
USING System.IO
USING System.Text
USING System.Threading
CLASS FileInputMonitor
PROTECT oFileSystemWatcher AS FileSystemWatcher
PROTECT cfolderToWatchFor := "C:TMP" AS STRING
CONSTRUCTOR()
oFileSystemWatcher := FileSystemWatcher{cfolderToWatchFor}
oFileSystemWatcher.EnableRaisingEvents := TRUE
// Instruct the file system watcher to call the FileCreated method
// when there are files created at the folder.
oFileSystemWatcher.Created += FileSystemEventHandler{FileCreated}
RETURN SELF
METHOD FileCreated(osender AS OBJECT, e AS FileSystemEventArgs) AS VOID PASCAL
IF Right(Upper(e.Name),4) == ".PRN"
ProcessFile(e.FullPath)
ENDIF
RETURN SELF
METHOD ProcessFile(fileName AS STRING) AS VOID PASCAL
LOCAL inputFileStream AS FileStream
LOCAL reader AS StreamReader
DO WHILE TRUE
TRY
inputFileStream := FileStream{fileName, FileMode.Open, FileAccess.ReadWrite}
reader := StreamReader{inputFileStream}
Console.WriteLine(reader.ReadToEnd())
// Break out from the endless loop
BREAK
CATCH e AS exception
// Sleep for 3 seconds before trying
Thread.Sleep(3000)
END TRY
ENDDO
RETURN SELF
END CLASS