Ce post pourra servir a ceux qui veulent se servir de la gestion des Handler dans .Net
DotNetDélégué permet de traiter les évènements dans .Net
Auparavant, si vous lisez d'abord l'aide de Windev, lisez surtout la complètement et vous verrez
Citation :
...
Cette fonction ne peut pas être utilisée en mode test : il est nécessaire de créer l'exécutable pour initialiser un délégué .NET.
...
Donc a moins de se retrouver avec des erreurs à l'exécution il n'est pas possible de tester DotNetDélégué avec un simple "GO" mais uniquement avce l'exe généré
En exemple je vais utiliser la détection des fichiers sur un répertoire
FileSystemWatcher permet de détecter la création (modif , delete et rename aussi) d'un fichier sur un répertoire.
ce système utilise les Handlers qui exécute une procédure à chaque détection.
oFSWatcher est un FileSystemWatcher //Objet FileSystemWatcher
oCreated est un FileSystemEventHandler dynamique //Le Handler de création
//Surveille le répertoire sécifié
oFSWatcher:Path = "c:\monRep"
//Surveille les fichiers TXT
oFSWatcher:Filter = "*.txt"
//Filtre sur les Acces, écriture et taille de fichier
oFSWatcher:NotifyFilter += NotifyFilters::LastAccess
oFSWatcher:NotifyFilter += NotifyFilters::LastWrite
oFSWatcher:NotifyFilter += NotifyFilters::Size
/En .NET Correspond à la procédure suivante
//oFSWatcher.Created += new System.IO.FileSystemEventHandler(onCreated);
//
//private void onCreated(object sender, System.IO.FileSystemEventArgs e)
// .....
//}
SI PAS EnModeTest() ALORS
//DotNetDélégué créé un objet de type FileSystemEventHandler
//Branche la procédure onCreated sur le Handler FileSystemEventHandler
oFSWatcher:add_Created(DotNetDélégué("onCreated","FileSystemEventHandler"))
//On met la détection d'évènement à vrai
oFSWatcher:EnableRaisingEvents = Vrai
FIN
PROCEDURE onCreated(src,args)
trace("OnCreated : "+ args:FullPath+")
Voila, l'aide de windev n'est pas claire du tout et j'ai pas mal galéré avant de comprendre le fonctionnement de DotNetDélégué