Mon application contient des documents dans sa base de données. Les utilisateurs peuvent ouvrir les documents dans ce cas, le document est enregistré dans un dossier temporaire et s'ouvre sur l'ordinateur de l'utilisateur. P>
J'aimerais avoir une notification lorsque l'un de ces fichiers temporaires est modifié et offrez à l'utilisateur de sauvegarder le document modifié à la base de données. P>
Quel est le moyen le plus simple de le faire à Delphi7? (Je suppose qu'il nécessite une composante magique Shell ou 3ème partie) p>
Merci! P>
4 Réponses :
Vous pouvez détecter les modifications de vos fichiers temporaires (ou tout fichier) à l'aide du < Code> TJVChangenotify Code> composant à partir du Collection Jedi JVCl . P>
Je préfère ne pas utiliser de composants JVCl depuis que je les ai trouvés comme une buggy. Ne pas parler d'avoir à installer des composants de Gazilion juste pour avoir celui que vous avez réellement besoin ...
Vous pouvez soit: p>
Utilisez l'API SHCHANGENOTIFYregister fonction pour surveiller changements dans le dossier Temp, puis vérifiez votre chèque de rappel si vos fichiers temporaires déclarent des modifications. P> LI>
Depuis que vous connaissez le (s) fichier (s) exact (s) qui vous intéresse, vous pouvez surveiller manuellement les surveiller directement les modifications apportées à leurs tailles et à des horodatages à l'aide de FindFirstFile dans une minuterie ou un fil. P> li> ol>
En plus de ce que rruz et Remy Lebeau a écrit: p>
Notez que Il y a aussi l'appel code> ReadDirectoryChanges CODE> API, qui n'est pas enveloppé par le JCL / JVCL , et possède MSDN Documentation ici < / a> et il y a un Exemple de Delphi Win32 < / a> aussi. P>
Ce fil explique les différences entre le deux appels d'API. P>
- Jeroen P> tjvchangenotify code> dans l'unité
jvChangenotify code> utilise l'appel
FindFirstChangenotification code> API; Cette est la documentation MSDN. REMARQUE Il est un peu contre-intuitif: voir le fil mentionné ci-dessous sur la façon de l'utiliser à l'intérieur d'une boucle tandis que. P>
Merci pour l'info, allez les vérifier aussi.
Jetez également un coup d'œil à ceci: http://www.cromis.net / Blog / Downloads / Directory-Watch / et Comment surveiller le répertoire des fichiers de Delphi Xe? P>
Veuillez noter qu'il y a un bogue dans cette bibliothèque. Vous devez ajouter terminer dans tdirwatththread.execute (après SignalError (errorormsage)) - sans cela entre dans une boucle infinie lorsque vous supprimez tous les fichiers du dossier, puis le dossier lui-même! Étapes pour reproduire ce bogue: créer un dossier, un dossier de surveillance, mettre des fichiers dans le dossier, supprimer tous les fichiers de dossier, dossier de suppression, appgre.
Où sont chargés les documents? Trichedit? TMEMO?