|
FOROS PROFESIONALES WINDEV, WEBDEV y WINDEV Mobile |
| | | | | |
[WM12] Utilisation d'assembly .Net |
Iniciado por Gautier Cuquemelle, 24,feb. 2009 11:47 - 7 respuestas |
| |
| | | |
|
| |
Publicado el 24,febrero 2009 - 11:47 |
Bonjour,
Je recherche à utiliser un objet d'un assembly .Net (écrit en C#): j'ai rajouté l'assembly dans mon projet Windev "Atelier -> .Net -> Utiliser un assemblage .Net".
Je peux créer un objet et l'instancier:
gpclScanCtrl est un objet ScannerControl dynamique gpclScanCtrl=allouer un ScannerControl()
Mais je n'arrive pas à récupérer les évènements venant de cet objet... Windev a ajouté une méthode "add_ScannerDataEvent" à mon objet mais je n'arrive pas à trouver l'équivalent d'un "Delegate" sous Windev à lui passer en paramètre, et je n'arrive pas non plus à utiliser un objet "Delegete" venant de l'assembly : je ne passe pas les bons paramètres...
J'ai essayé: gpclScannerData est un objet ScannerDataDelegate dynamique gpclScannerData=allouer un ScannerDataDelegate(&OnScan)
(OnScan est une procédure locale, j'ai essayé avec une procédure globale et une méthode d'une classe définie dans Windev, sans succès).
Est-ce que quelqu'un a déjà été confronté à ce genre de problème, ou a déjà récupéré un évènement venant d'un assembly .Net ?
Merci d'avance ! Gautier |
| |
| |
| | | |
|
| | |
| |
Publicado el 24,febrero 2009 - 15:07 |
Bonjour Gautier,
J'intègre régulièrement des assemblages.net dans mes projets WD. J'ai été confronté à ce genre de problème. Je reconnais que ce n'est pas facile. J'ai exploré différentes pistes avant d'y arriver.
Je peux vous faire un exemple avec ZEDGRAPH.DLL. Ce serait mieux si vous m'indiquiez l'assemblage que vous voulez utiliser.
Cordialement JJ. CONFAIS |
| |
| |
| | | |
|
| | |
| |
Publicado el 24,febrero 2009 - 15:57 |
Bonjour Jean-Jacques et merci pour cette réponse !
L'assembly utilisé s'appelle MCSSLibNet.dll et est fourni par un constructeur de PDA (Mobile Compia) pour piloter le scanner intégré de l'appareil.
L'évènement utilisé est de type un peu particulier (ScannerDataDelegate) mais fonctionne comme tous les autres : lors de son initialisation il faut passer en paramètre une fonction devant gérer l'évènement.
Exemple en C#:
// Initialisation de l'évènement "lecture" ScanCtrl.ScannerDataEvent += new ScannerDataDelegate(OnScanData);
// Méthode de gestion de lecture du code private void OnScanData(object sender,ScannerDataArgs e) { // Affichage du code lu MessageBox.Shox(e.ScanData); }
Tout exemple de code en Windev permettant de gérer un évènement venant d'une classe .Net est le bienvenu...
Merci d'avance !
Gautier |
| |
| |
| | | |
|
| | |
| |
Publicado el 03,marzo 2009 - 15:09 |
Bonjour Gautier,
Créez une fenêtre "FEN_MCScanner" Ajoutez un champ de saisie "SAI_VersionInfo"
// Déclarations globales de FEN_MCScanner gclMonMCScanner est un ScannerControl dynamique
// Initialisation de FEN_MCScanner gclMonMCScanner=allouer un ScannerControl
gclMonMCScanner:ScanInit()
SAI_VersionInfo..Valeur=gclMonMCScanner:GetVersionInfo()
// Fermeture de FEN_MCScanner gclMonMCScanner:ScanClose()
Des infos sur la version devraient s'afficher et vous saurez si le scanner est bien initialisé.
J'ai essayé de contacter MOBILE COMPIA pour récupérer la documentation et la DLL utilisée mais je n'ai pas de réponse pour l'instant.
Je suppose que vous disposez de ces éléments. Si vous me les transmettez, je pourrais approfondir mes recherches.
Cordialement. JJ. CONFAIS |
| |
| |
| | | |
|
| | |
| |
Publicado el 03,marzo 2009 - 16:33 |
Bonjour,
Mobile Compia est une société Coréenne et il est assez difficile de trouver des informations technique au sujet de leur matériel...
Je vous remercie pour l'exemple que vous venez de poster, mais La partie déclaration et allocation de l'objet ne me pose pas de problème, de même que l'appel à des méthodes de l'objet ou la lecture de propriétés. Le seul point restant obscur est la récupération d'évènements dans mon programme Windev.
Dans un programme en C#, je vais pouvoir écrire une fonction qui sera appelée automatiquement lors de la lecture d'un code. Lors de l'initialisation du scanner, il suffit ajouter la ligne:
ScanCtrl.ScannerDataEvent += new ScannerDataDelegate(OnScanRead);
Ce qui permet d'appeler la fonction "OnScanRead" dès que le lecteur aura décodé un code à barres. La fonction "OnScanRead" va quant à elle afficher dans un champ texte le contenu du code.
Cette gestion d'évènement de lecture permet d'éviter de créer une boucle infinie chargée de contrôler si un code a été lu, mais je ne sais pas si Windev est capable de gérer ce genre d'évènement... Si c'est possible, ils ont bien brouillés les pistes et caché les informations au fin fond d'une documentation oubliée...
J'ai contourné le problème de scanner en appelant depuis mon programme Windev un programme écrit en C# chargé de gérer le pilotage du scanner...
Pour ceux qui cherchent également à piloter la caméra du PDA (modèle M3 sous Windows Mobile 5), sachez qu'il y a un bug (je ne saurais dire à quel niveau): si une image est affichée dans la fenêtre depuis laquelle vous appelez le module de prise de photo, l'aperçu de la caméra ne fonctionnera pas. Il faut d'abord effacer l'image, prendre la photo, puis ré afficher l'image:
IMG_MonImage=""
IMG_MonImage="\MaPhoto.jpg"
Je peux fournir les sources du composant C# redéveloppé à ceux que ça intéresse...
Cordialement, Gautier |
| |
| |
| | | |
|
| | |
| |
Publicado el 29,julio 2010 - 11:29 |
Monsieur Cuquemelle bonjour,
Je suis en stage de 3 mois dans une entreprise, et on me donne à développer une maquette d'un projet d'une interface de gestion de stock et ce avec un mobile Compia M3. Je suis à la recherche d'une dll MCSSLib.dll récente car celle livré avec le composant M3 de la LST 71 dont je dispose ne fonctionne pas. Je serais également intéressé par votre composant.
Merci
Cordialement Gauthier. |
| |
| |
| | | |
|
| | |
| |
Publicado el 29,julio 2010 - 19:03 |
Rebonjour à tous.
Je recherche une bonne âme qui pourrait me mailer la fameuse dll MCSSLib.dll la plus récente possible qui fonctionne avec le composant Windev et le PDA Mobile Compia M3, parce que je viens de recevoir un email de l'importateur, et cette DLL n'existe plus chez eux.
Au secours et merci par avance.
Cordialement Gauthier. |
| |
| |
| | | |
|
| | |
| |
Publicado el 05,agosto 2010 - 13:18 |
J'ai trouvé la fameuse dll chez le fabricant asiatique mais cela ne fonctionne pas mieux. |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|