PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile 2025 → Symbol MC50 et Code-Barre
Symbol MC50 et Code-Barre
Iniciado por guest, 22,dic. 2005 12:27 - 2 respuestas
Publicado el 22,diciembre 2005 - 12:27
Bonjour a tous,

Je sais que certains d'entre vous utilisent le Symbol MC50 avec le lecteur code barre. J'aurais des questions à vous poser concernant le composant Symbol.

Je cherche à activer le scan pour l'ensemble de mon application et pouvoir récuperer la valeur du scan dans le champ qui a le focus (en filtrant le type de l'objet, car pas de scan sur un bouton par exemple)

En modifiant la classe, j'ai résussi à faire ce que je souhaitais, mais par contre, à un moment, le scan ne "scanne" plus ! C'est comme s'il se bloquait ou si le buffer était "plein" (???) Je ne comprends pas pourquoi...

Voici le code que j'ai mis en place :

//********************************************
// Déclaration globale de MENU (1ère fenêtre de l'appli)
//********************************************
giIDEve = Evénement("CallBackScan","*.*",5103)

//********************************************
// Initialisation de MENU (1ère fenêtre de l'appli)
//********************************************
pScannerSymbol.bOuvrirAccesScanner()
pScannerSymbol.bActiverScanner()
SI pScannerSymbol.bLectureAvecEvenement(Handle(FenEnCours())) <> Vrai ALORS
Erreur("Une erreur est survenue pendant la mise en place du mécanisme de lecture par événement",pScannerSymbol.sErreurInfo())
FIN



//********************************************
// Procédure Globale CallBackScan
//********************************************
PROCEDURE CallBackScan()
sCode is string
sLong is string
sErreur is string
sChamp is string = ChampEnCours()
sType is int
sNomFen is string = FenEnCours()

sType = {sChamp}..Type
//Info("Objet = "+sChamp,"Type objet = "+sType,"FenEnCours = "+sNomFen)
IF sChamp <> "" AND sType IN ("20001","20002", "20004", "20005", "7", "9") THEN
IF NOT pScannerSymbol.ValeurCodeBarreEvenement(sCode,sLong) THEN
sErreur =pScannerSymbol.sErreurInfo()
Erreur(sErreur)
END
gProc_RemplirChampCodeBarre()
END

SI pScannerSymbol.bLectureAvecEvenement(Handle(FenEnCours())) <> Vrai ALORS
Erreur("Une erreur est survenue pendant la mise en place du mécanisme de lecture par événement",pScannerSymbol.sErreurInfo())
FIN


//********************************************
// Procédure Globale gProc_RemplirChampCodeBarre
//********************************************
PROCEDURE gProc_RemplirChampCodeBarre()

sChamp is string = ChampEnCours()
sType is int
sNomFen is string = FenEnCours()
sType = {sChamp}..Type

//typDate = 20002
//typListe = 7
//typMonétaire = 20005
//typNum = 20004
//typTable = 9
//typTexte = 20001

IF sChamp <> "" AND sType IN ("20001","20002", "20004", "20005", "7", "9") THEN
{sChamp} = pScannerSymbol.stResultatScan.sCodeBarre
END

Si quelqu'un à une idée... je suis preneur
Publicado el 22,diciembre 2005 - 14:04
Moi j'avais un problème de libération de mémoire sur un MC50.
Le problème est résolu sur une mise a jours en BETA de l'OS et du MC50
a chaque lancement/fermeture de l'application je perdait environ 1MO de
ram (avec une mise a jour intermédiaire je ne perdait plus que 250 Ko.)
Mais apres pas mal de démarrage fermeture le pocket saturait en mémoire.
Il se peut que les 2 problèmes soit lié.

a++
Goof
Publicado el 23,diciembre 2005 - 12:38
En fait, le problème se produit lorsque je passe d'une fenêtre à une autre...

Exemple:

- Je déclare le l'ouverture du scan sur un menu principal et déclenche l'évenement sur toutes les fenêtres et tous les champs de l'application ("*.*")
- J'ouvre une fenêtre de recherche "Client", je scanne, je récupère la valeur du scan dans un champ de saisie, et click sur "recherche" --> Ok
- Je ferme la recherche "Client", et reviens sur le menu principal.
- J'ouvre une autre fenetre de recherche, je scanne... et la, j'ai un long "bip" et le scan se ferme. Plus de possibilité de scanner quoi que se soit

Si quelqu'un à une idée, je suis preneur !

JulianO