Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Bonjour,
problèmatique: Comment récupérer les coordonnées (X,Y) d'un clic à l'extérieur d'une application Powerbuilder où on utilise un NVO qui intègre les fonctionnalités d'une DLL (ici EZTWAIN)
J'utilise EZTwain pour scanner et visualiser les documents à partir d'un scanner. A l'aide de EZTWAIN on peut visualiser un fichier, mettre en mémoire les pages, faire des rotations des pages etc.... Pour identifier les différents documents, nous voulons mettre un barcode sur la page 1. A savoir EZTwain possède une fonction de visualiser le document, donc la fenêtre s'ouvre et je la positionne à côté d'une fenêtre Powerbuilder. L'utilisateur doit avoir la possibilité la où il clique sur le document de positionner le barcode. Je n'ai pas trouvé le moyen de recupérer les coordonnées X, Y à l'aide de fonctonalité de EZTwain du clique.
D'où ma question comment faire de recupérer ces coordonnées???
Une fois recupérer je peux les utiliser de positionner le barcode sur le document.
Merci de votre aide.
Hors ligne
Bonjour
Le document cliqué se trouve dans quel type de contrôle?
Hors ligne
Le document est ouvert dans une fêntre propre à la DLL EZTWAIN. Cette fenêtre est positionné à côté d'une fenêtre PB, d'où en règle générale comment récuprer des coordonnées X,Y endehors d'une appli PB?
Hors ligne
à ma connaissance, pour récupérer des évènements (= des messages) d'une autre fenêtre qu'on n'a pas écrit soi-même, il est possible de passer par des hooks : on demande au système d'être notifié de certains évènements en même temps que l'autre appli/fenêtre).
Seulement je ne crois pas que ce soit possible en pur PB sans passer par une extension PBNI (car il faut fournir une callback au système, et PB ne supporte pas cela sauf avec un PBNI).
Il faudrait aussi creuser comment la fenêtre dessinée par eztwain est vue du système : autre processus ou fait-elle partie du même processus que PB ?
Edit: Il existe un article sur cette possibilité de hook que j'ai retrouvé sur le PB Developer Journal : http://pbdj.sys-con.com/node/80834
Cet article montre comment modifier la liste des types de fichiers proposés dans le dialogue standard GetFileOpenName, et comment choisir le type de fichier par défaut :
- on s'enregistre pour être appelé après certains messages système à la fenêtre, en l'occurrence l'ajout des types de fichiers
- lorsque cela se produit la callback du pbni est appelée par le système, on regarde quelles sont les données envoyées à la bopite de dialogue et on dégage celles qu'on ne veut pas voir
Codexchange, le site qui contient le code cité par l'article a disparu dernièrement avec celui de sybase (il paraît qu'il devrait réapparaitre quelque part chez SAP, mais quand ?) mais j'avais archivé depuis longtemps les exemples de PBNI et au besoin je peux fournir le PBNISetWindowHook.zip en question qui contient un .pbx et ses sources visual C.
Dans ton cas, on voudrait recevoir les messages relatifs à la souris, genre WM_LBUTTONDOWN et /ou WM_LBUTTONUP pour savoir lorsque l'utilisateur clique où c'est. Ceci dit je trouve ça un peu tortueux
Dernière modification par seki (29-01-2015 17:07:11)
Hors ligne
Pages: 1