Jo, und wenn das Programm mehrfach von dem Benutzer an dem Rechner gestartet wird, dann klappert das so nicht.
Dein Aufruf müsste dann wie folgt sein:
CreateFile( PChar( FFileName ), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE or FILE_SHARE_DELETE, nil, OPEN_ALWAYS, FILE_FLAG_DELETE_ON_CLOSE, 0 );
Doch, das klappt, da die aktuelle Zeit im Dateinamen enthalten ist. Und auf die genaue Millisekunde bekommt das kein Benutzer doppelt hin.