FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
KGF_dll - nouvelles versions - Page 4 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
KGF_dll - nouvelles versions - Page 4 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF_dll - nouvelles versions - Page 4 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF_dll - nouvelles versions - Page 4 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF_dll - nouvelles versions - Page 4 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF_dll - nouvelles versions - Page 4 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF_dll - nouvelles versions - Page 4 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF_dll - nouvelles versions - Page 4 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF_dll - nouvelles versions - Page 4 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF_dll - nouvelles versions - Page 4 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF_dll - nouvelles versions - Page 4 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF_dll - nouvelles versions - Page 4 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF_dll - nouvelles versions - Page 4 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF_dll - nouvelles versions - Page 4 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF_dll - nouvelles versions - Page 4 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

 

 KGF_dll - nouvelles versions

Aller en bas 
+6
papydall
Marc
jean_debord
Minibug
JP06
Klaus
10 participants
Aller à la page : Précédent  1, 2, 3, 4, 5 ... 9 ... 15  Suivant
AuteurMessage
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyJeu 17 Fév 2022 - 17:00

Oups... je vais corriger la doc.

Le code correct est:
Code:
EVENT:
  if bin_and(user_event_wparam,hex("FF000000"))=hex("05000000")
      if bin_and(user_event_wparam,hex("00FF0000"))=hex("010000")
        Active 0     
      end_if
  end_if
return
Donc, enlève juste les 4 signes $.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 4 EmptyJeu 17 Fév 2022 - 17:12

Super Klaus.

Cela fonctionne bien et l'enregistrement dans un fichier aussi.
Je vais pouvoir avancer sur ma petite application.
Merci Klaus.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyJeu 17 Fév 2022 - 18:09

Ok, merci, Yannick !

Entretemps, la foc est corrigée - version CHM et doc en ligne.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 4 EmptyJeu 17 Fév 2022 - 20:16

@Klaus,

Je viens de faire le tour de l'objet scanner et je m'aperçois qu'il manque un petit retour.
Je m'explique, dans l'ordre :

on crée un objet scanner
on recherche les sources twains
on sélectionne une source 
on lance le scan
on enregistre l'image, dans le presse papier ou dans un fichier

sauf que rien n' arrête le processus si le scanner est éteint  Wink 

en fait si, c'est un retour windows qui affiche une erreur mais là on a bloqué l'appli.
Je ne sais pas si c'est possible mais il serait bien que l'on est un retour sur l'état "allumé" ou "éteint" du scanner à la sélection pour ne pas lancer un scan fantôme  What a Face qui va tout bloquer.

Bon, je sors... Laughing
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyVen 18 Fév 2022 - 8:01

Tu as raison - je vais regarder ça...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptySam 19 Fév 2022 - 0:59

KGF.dll V9.68 du 18/02/2022

Nouveautés:
- objet Scanner: nouvel USER_EVENT en cas d'erreur

Modules modifiés:
KGF.dll

La doc suivra.

Lors de la survenue d'une erreur quelconque, un USER_EVENT sera généré pour le signaler, et l'action du scanner sera annulée. Ainsi, si le scanner n'est pas allumé avant le scan ou est coupé pendant le scan, le programme Panoramic sera averti et ne reste plus bloqué.

Documentation prélimiaire, en attendant la nouvelle version de la doc CHM:

Citation :
Cette fonction démarre l'acquisition d'une image à partir de la source d'images TWAIN sélectionnée. Cette action est asynchrone. Cela signifie que la fonction rend la main au  programme Panoramic alors que l'opération de scan est encore en cours.  Lorsque l'opération sera terminée, l'image scannée sera mémorisée dans l'objet Scanner, et un USER_EVENT sera généré pour signaler ce fait.

L'identification de l'évènement de fait par la valeur dans WPARAM. Cette variable système contient les informations suivantes, en hexadécimal:
xMMRR0000  ou hex$("MMRRIIII")
"x" signifie "notation hexadécimale"
MM contient "05" ce qui signifie "objet Scanner est à l'origine du USER_EVENT"
RR contient "01" ce qui signifie "opération de scan terminée"
RR contient "02" ce qui signifie "opération en erreur, scan terminée"
IIII index de la source de données choisie si RR=02 (en cas d'erreur)

Une information supplémentaire est fournie dans LPARAM:
LPARAM = EEEEAAAA   EEEEE = code erreur   AAAA = information additionnelle
EEEE valeurs possibles:
 TWRC_SUCCESS      =  0;
 TWRC_FAILURE      =  1; { Application may get TW_STATUS for info on failure }   <===== erreur
 TWRC_CHECKSTATUS  =  2; { "tried hard": ; get status }
 TWRC_CANCEL       =  3;
 TWRC_DSEVENT      =  4;
 TWRC_NOTDSEVENT   =  5;
 TWRC_XFERDONE     =  6;
 TWRC_ENDOFLIST    =  7; { After MSG_GETNEXT if nothing left }
 TWRC_INFONOTSUPPORTED =  8;
 TWRC_DATANOTAVAILABLE =  9;

AAAA valeurs possibles si message d'erreur:
 TWCC_SUCCESS           =  0; { It worked! }
 TWCC_BUMMER            =  1; { Failure due to unknown causes }
 TWCC_LOWMEMORY         =  2; { Not enough memory to perform operation }
 TWCC_NODS              =  3; { No Data Source }       <============== scanner non disponible
 TWCC_MAXCONNECTIONS    =  4; { DS is connected to max possible applications }
 TWCC_OPERATIONERROR    =  5; { DS or DSM reported error, application shouldn't }
 TWCC_BADCAP            =  6; { Unknown capability }
 TWCC_BADPROTOCOL       =  9; { Unrecognized MSG DG DAT combination }
 TWCC_BADVALUE          =  10; { Data parameter out of range }
 TWCC_SEQERROR          =  11; { DG DAT MSG out of expected sequence }
 TWCC_BADDEST           =  12; { Unknown destination Application/Source in DSM_Entry }
 TWCC_CAPUNSUPPORTED    =  13; { Capability not supported by source }
 TWCC_CAPBADOPERATION   =  14; { Operation not supported by capability }
 TWCC_CAPSEQERROR       =  15; { Capability has dependancy on other capability }
 TWCC_DENIED            =  16; { File System operation is denied (file is protected) }
 TWCC_FILEEXISTS        =  17; { Operation failed because file already exists. }
 TWCC_FILENOTFOUND      =  18; { File not found }
 TWCC_NOTEMPTY          =  19; { Operation failed because directory is not empty }
 TWCC_PAPERJAM          =  20; { The feeder is jammed }
 TWCC_PAPERDOUBLEFEED   =  21; { The feeder detected multiple pages }
 TWCC_FILEWRITEERROR    =  22; { Error writing the file (meant for things like disk full conditions) }
 TWCC_CHECKDEVICEONLINE =  23; { The device went offline prior to or during this operation }    <=== scanner pas connecté

Voici le code de gestion du USER_EVENT pour les fonctions StartSelectedScanner et StartScannerWithDialog:
Code:
label event
dim TW%, ind%, error%, additionnal%
on_user_event event
...
res% = dll_call2("StartSelectedScanner",TW%,1)
...
event:
  if bin_and(user_event_wparam,hex("FF000000")=hex("05000000"))  : ' est-ce que c'est le scanner ?
    if bin_and(user_event_wparam,hex("00FF0000")=hex("010000"))  : ' est-ce que c'est causé par la terminaison d'une acquisition ?
      ' ==> ici, on peut traiter l'image reçue !
    end_if
    if bin_and(user_event_wparam,hex("00FF0000")=hex("020000"))  : ' est-ce que c'est causé par une erreur ?
      ind% = bin_and(user_event_wparam,hex("FFFF"))  : ' ceci est l'indice du scaner causant l'erreur
      error% = bin_and(user_event_lparam,hex("FFFF0000"))/65536  : ' ceci est le code d'erreur
      additional% = bin_and(user_event_lparam,hex("FFFF")): ' ceci est l'information détaillée
      ' ==> ici, le scanner est arrêtée et on peut traiter la réception de l'erreur
    end_if
  end_if
  return

Il y a donc un moyen précis de connaître qu'une erreur s'est produite ainsi que sa nature exacte.

Actuellement, je n'ai pas de scanner disponible. Pourrais-tu tester cela ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 4 EmptySam 19 Fév 2022 - 11:23

Salut Klaus,

Je teste cela dès cette après-midi.

Heu...windows est plus rapide il renvoit une fin de non recevoir (message d'erreur)
avant le retour de l'event quand le scanner est éteint.

KGF_dll - nouvelles versions - Page 4 Captur30

Si je crée un big bang en éteignant le scanner pendant le scan, il me dit que l'expression :
if bin_and(user_event_wparam,hex("00FF0000")=hex("020000"))   : ' est-ce que c'est causé par une erreur ?
n'est pas logique.

et j'ai aussi un message mais en fait je m'aperçois que ce n'est pas windows qui édite ces messages mais 
le scanner.

Je viens de trouver l'illogisme. la parenthèse de fermetur de bin_and() est trop loin  Laughing
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptySam 19 Fév 2022 - 17:10

Ok, je vois.

Je suis en train de traiter le USER_EVENT en fin de scan dan slequel j'ai semé le boxon. Mais à part cela, j'ai créé une fonction spécifique IsSelectedScannerConnected qui fonctiionne bien. Je vais la publier au même moment que la réparation du scan.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyDim 20 Fév 2022 - 9:48

Tu peux recharger KGF.dll ! Il y a maintenant une nouvelle fonction:
Code:
res% = dll_call1("IsSelectedScannerConnected ",TW%)

Elle retourne -1 si le scanner n'est pas connecté ou offline, et 0 si scanner est accessible.

Voilà une petite démo - cliquer sur "Tester" pour voir le résultat:
Code:
' test_IsSelectedScannerConnected.bas

label close0, tester, choix, scanner, event

dim res%, TW%, sel%, ind%, error%, additional%

height 0,600
on_close 0,close0
on_user_event event

button 1 : top 1,10 : left 1,220 : caption 1,"Tester" : on_click 1,tester
button 2 : top 2,top(1)+height(1)+10 : left 2,220 : caption 2,"Scanner" : on_click 2,scanner
list 11 : top 11,10 : left 11,10 : width 11,200 : on_click 11,choix
memo 12 : top 12,top(11)+height(11)+10 : left 12,10 : width 12,width(11) : height 12,100 : bar_both 12
alpha 13 : top 13,top(12)+height(12)+10 : left 13,10
picture 14 : top 14,top(2)+height(2)+10 : left 14,220 : width 14,300 : height 14,400 : stretch_on 14

dll_on "KGF.dll"

TW% = dll_call0("CreateScanner")
res% = dll_call2("GetScannerSources",TW%,handle(11))
sel% = dll_call1("GetSelectedScannerSource",TW%)
res% = dll_call2("SelectListBoxItem",handle(11),sel%)

end

tester:
  caption 13, "Test en cours..."
  display
  res% = dll_call2("SelectScannerSource",TW%,sel%)
  inactive 1 : inactive 2
  res% = dll_call2("IsSelectedScannerConnected",TW%,handle(12))
  active 1 : active 2
  if res%<0
    caption 13, "Erreur en accès au scanner"
  else
    if res%=0 then caption 13, "Le scanner n'est pas connecté"
    if res%>0 then caption 13, "Le scanner est connecté"
  end_if
  return
 
scanner:
  caption 13, "Scan en cours..."
  clear 12
  display
  inactive 1 : inactive 2
  res% = dll_call2("StartSelectedScanner",TW%,0)
  active 1 : active 2
  caption 13,"Scan terminé."
  return

choix:
  sel% = item_index(11)
  res% = dll_call2("SelectScannerSource",TW%,sel%)
  return

close0:
  res% = dll_call1("DeleteScanner",TW%)
  return 
 
event:
  if bin_and(user_event_wparam,hex("FF000000"))=hex("05000000")  : ' est-ce que c'est le scanner ?
    if bin_and(user_event_wparam,hex("00FF0000"))=hex("010000")  : ' est-ce que c'est causé par la terminaison d'une acquisition ?
      caption 13, "Scan reçu correctement"
      res% = dll_call1("CopyScannerImapeToClipBoard",TW%)
      clipboard_paste 14
    end_if
    if bin_and(user_event_wparam,hex("00FF0000"))=hex("020000")  : ' est-ce que c'est causé par une erreur ?
      ind% = bin_and(user_event_wparam,hex("FFFF"))  : ' ceci est l'indice du scaner causant l'erreur
      error% = bin_and(user_event_lparam,hex("FFFF0000"))/65536  : ' ceci est le code d'erreur
      additional% = bin_and(user_event_lparam,hex("FFFF")): ' ceci est l'information détaillée
      caption 13, "Erreur pendant le scan"
      clear 12
      item_add 12,"Numéro du scanner en erreur: "+str$(ind%+1)
      item_add 12,"Code erreur: "+str$(error%)
      item_add 12,"Additionnel: "+str$(additional%)     
    end_if
  end_if
  return


Dernière édition par Klaus le Dim 20 Fév 2022 - 17:20, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 4 EmptyDim 20 Fév 2022 - 13:12

Salut Klaus.

J'ai testé et en fait si le scanner est éteint, Epson répond avant la fonction.
J'ai droit au message d'erreur :
KGF_dll - nouvelles versions - Page 4 Captur30
Dans le programme test il y a deux mini erreurs :
    if res%=<0 then caption 13, "Le scanner n'est pas connecté"
    if res%>=0 then caption 13, "Le scanner est connecté"

Une fenêtre s'ouvre en plus pendant le scan :
KGF_dll - nouvelles versions - Page 4 Captur63

cette fenêtre ne sert à rien si ce n'est de ... car elle empêche l' affichage
et que je la ferme avec l'un ou l'autre des boutons l' image est affichée.
La seule chose et qui est bizarre puisque l' image s'affiche correctement c'est la
signalisation d'une erreur dans le memo lorsque l'on clique sur "OK" : scanner 1 erreur 1 détail 23
bref de quoi en perdre son lapin.
scratch
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyDim 20 Fév 2022 - 14:35

J'ai le même comportement avec mon scanner. Cela dépend des paramètres de configuration du scanner et je suis en train de chercher une solution à ce problème de paramétrage.

En attendant, clique "Cancel" dans la fenêtre supplémentaire et tu auras la réponse appropriée dans le programme de démo que j'ai posté. Voici le résultat:
KGF_dll - nouvelles versions - Page 4 Aa190
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyDim 20 Fév 2022 - 15:24

La doc du scanner est mise à jour (version CHM et en ligne).
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 4 EmptyDim 20 Fév 2022 - 16:26

@Klaus,

Dans les versions précédentes de KGF il n'y avait pas cette fenêtre "Select source"
et les réglages étaient les même.
Je crois que je t'ai poussé vers le mieux mais c'est vraiment l'ennemi du bien. pale
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyDim 20 Fév 2022 - 17:22

Recharge KGGF.dll et utilise cette version du programme de test:
Code:
' test_IsSelectedScannerConnected.bas

label close0, tester, choix, scanner, event

dim res%, TW%, sel%, ind%, error%, additional%

height 0,600
on_close 0,close0
on_user_event event

button 1 : top 1,10 : left 1,220 : caption 1,"Tester" : on_click 1,tester
button 2 : top 2,top(1)+height(1)+10 : left 2,220 : caption 2,"Scanner" : on_click 2,scanner
list 11 : top 11,10 : left 11,10 : width 11,200 : on_click 11,choix
memo 12 : top 12,top(11)+height(11)+10 : left 12,10 : width 12,width(11) : height 12,100 : bar_both 12
alpha 13 : top 13,top(12)+height(12)+10 : left 13,10
picture 14 : top 14,top(2)+height(2)+10 : left 14,220 : width 14,300 : height 14,400 : stretch_on 14

dll_on "KGF.dll"

TW% = dll_call0("CreateScanner")
res% = dll_call2("GetScannerSources",TW%,handle(11))
sel% = dll_call1("GetSelectedScannerSource",TW%)
res% = dll_call2("SelectListBoxItem",handle(11),sel%)

end

tester:
  caption 13, "Test en cours..."
  display
  res% = dll_call2("SelectScannerSource",TW%,sel%)
  inactive 1 : inactive 2
  res% = dll_call2("IsSelectedScannerConnected",TW%,handle(12))
  active 1 : active 2
  if res%<0
    caption 13, "Erreur en accès au scanner"
  else
    if res%=0 then caption 13, "Le scanner n'est pas connecté"
    if res%>0 then caption 13, "Le scanner est connecté"
  end_if
  return
 
scanner:
  caption 13, "Scan en cours..."
  clear 12
  display
  inactive 1 : inactive 2
  res% = dll_call2("StartSelectedScanner",TW%,0)
  active 1 : active 2
  caption 13,"Scan terminé."
  return

choix:
  sel% = item_index(11)
  res% = dll_call2("SelectScannerSource",TW%,sel%)
  return

close0:
  res% = dll_call1("DeleteScanner",TW%)
  return 
 
event:
  if bin_and(user_event_wparam,hex("FF000000"))=hex("05000000")  : ' est-ce que c'est le scanner ?
    if bin_and(user_event_wparam,hex("00FF0000"))=hex("010000")  : ' est-ce que c'est causé par la terminaison d'une acquisition ?
      caption 13, "Scan reçu correctement"
      res% = dll_call1("CopyScannerImapeToClipBoard",TW%)
      clipboard_paste 14
    end_if
    if bin_and(user_event_wparam,hex("00FF0000"))=hex("020000")  : ' est-ce que c'est causé par une erreur ?
      ind% = bin_and(user_event_wparam,hex("FFFF"))  : ' ceci est l'indice du scaner causant l'erreur
      error% = bin_and(user_event_lparam,hex("FFFF0000"))/65536  : ' ceci est le code d'erreur
      additional% = bin_and(user_event_lparam,hex("FFFF")): ' ceci est l'information détaillée
      caption 13, "Erreur pendant le scan"
      clear 12
      item_add 12,"Numéro du scanner en erreur: "+str$(ind%+1)
      item_add 12,"Code erreur: "+str$(error%)
      item_add 12,"Additionnel: "+str$(additional%)     
    end_if
  end_if
  return

Chez moi, il n'y a plus cette fenêtre intempestive...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 4 EmptyDim 20 Fév 2022 - 17:36

cheers Super Klaus !

le temps du test est plus court
le message de Epson a disparu
la fenêtre "Select source" a disparu

par contre il faut changé les signes des lignes 37 et 38 de l'exemple qui provoquent une erreur d'affichage.
L37 il faut < au lieu de = car la valeur de res% dans ce cas est -1
L38 il faut = au lieu de > car la valeur de res% dans ce cas est 0
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyDim 20 Fév 2022 - 18:10

Ok, KGF.dll a été corrigé, ainsi que le programme de démo:
Code:
' test_IsSelectedScannerConnected.bas

label close0, tester, choix, scanner, event

dim res%, TW%, sel%, ind%, error%, additional%

height 0,600
on_close 0,close0
on_user_event event

button 1 : top 1,10 : left 1,220 : caption 1,"Tester" : on_click 1,tester
button 2 : top 2,top(1)+height(1)+10 : left 2,220 : caption 2,"Scanner" : on_click 2,scanner
list 11 : top 11,10 : left 11,10 : width 11,200 : on_click 11,choix
memo 12 : top 12,top(11)+height(11)+10 : left 12,10 : width 12,width(11) : height 12,100 : bar_both 12
alpha 13 : top 13,top(12)+height(12)+10 : left 13,10
picture 14 : top 14,top(2)+height(2)+10 : left 14,220 : width 14,300 : height 14,400 : stretch_on 14

dll_on "KGF.dll"

TW% = dll_call0("CreateScanner")
res% = dll_call2("GetScannerSources",TW%,handle(11))
sel% = dll_call1("GetSelectedScannerSource",TW%)
res% = dll_call2("SelectListBoxItem",handle(11),sel%)

end

tester:
  caption 13, "Test en cours..."
  display
  res% = dll_call2("SelectScannerSource",TW%,sel%)
  inactive 1 : inactive 2
  res% = dll_call2("IsSelectedScannerConnected",TW%,handle(12))
  active 1 : active 2
  if res%<0
    caption 13, "Erreur en accès au scanner"
  else
    if res%<0 then caption 13, "Le scanner n'est pas connecté"
    if res%=0 then caption 13, "Le scanner est connecté"
  end_if
  return
 
scanner:
  caption 13, "Scan en cours..."
  clear 12
  display
  inactive 1 : inactive 2
  res% = dll_call2("StartSelectedScanner",TW%,0)
  active 1 : active 2
  caption 13,"Scan terminé."
  return

choix:
  sel% = item_index(11)
  res% = dll_call2("SelectScannerSource",TW%,sel%)
  return

close0:
  res% = dll_call1("DeleteScanner",TW%)
  return 
 
event:
  if bin_and(user_event_wparam,hex("FF000000"))=hex("05000000")  : ' est-ce que c'est le scanner ?
    if bin_and(user_event_wparam,hex("00FF0000"))=hex("010000")  : ' est-ce que c'est causé par la terminaison d'une acquisition ?
      caption 13, "Scan reçu correctement"
      res% = dll_call1("CopyScannerImapeToClipBoard",TW%)
      clipboard_paste 14
    end_if
    if bin_and(user_event_wparam,hex("00FF0000"))=hex("020000")  : ' est-ce que c'est causé par une erreur ?
      ind% = bin_and(user_event_wparam,hex("FFFF"))  : ' ceci est l'indice du scaner causant l'erreur
      error% = bin_and(user_event_lparam,hex("FFFF0000"))/65536  : ' ceci est le code d'erreur
      additional% = bin_and(user_event_lparam,hex("FFFF")): ' ceci est l'information détaillée
      caption 13, "Erreur pendant le scan"
      clear 12
      item_add 12,"Numéro du scanner en erreur: "+str$(ind%+1)
      item_add 12,"Code erreur: "+str$(error%)
      item_add 12,"Additionnel: "+str$(additional%)     
    end_if
  end_if
  return

Yannick aime ce message

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 4 EmptyMer 23 Fév 2022 - 14:18

Snifff...

Fausse bonne nouvelle pour la fenêtre Epson.
J'ai redémarré mon ordi et hop, voilà qu'elle est de retour.
Sad
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyMer 2 Mar 2022 - 2:58

KGF.dll V9.69 du 02/03/2022

Nouveautés:
- nouvel objet: TRecord et ses fonctions de gestion

Modules modifiés:
KGF.dll

La doc suivra.

Cet objet implémente la gestion d'un fichier contenant des registrements de longeur fixe mais non limitée.

Chaque enregistrement est composé de champs de strings de longueur fixe quelconque, d'entiers et de flottants, dans n'importe quel ordre et dans n'importe quel nombre.

On peut définir librement son enregistrement en créant les champs de son choix.
On peut même créer des champs "overlay" redéfinissant des parties d'enregistrement (ex.: un grand champ d'adresse découpé en 4 champs overlay de 2 lignes d'adresse, un code postal et une ligne pour la ville)

Il y a des fonctions de création d'un tel fichier, d'oueverture d'un fichier existant et de sa fermeture.
Il y a des fonctions d'écriture séquentielle, à accès direct par numéro d'enregistrement et d'ajout en fin de fichier.
Il y a des fonctions de lecture du premier ou du dernier enregistrement, de lire un enregistrement en accès direct par son numéro, ou de lire l'enregistrement suivant ou précédant.
Il y a même une fonction de positionnement définissant la position de départ pour la prochaine action de lecture ou écriture.

Techniquement, l faut mettre à disposition un buffeur d'enregistrement sous forme d'un tableau uni-dimensionnel d'entiers, déclaré comme toute première variable dans les DIM.
Exemple:
Code:
dim tableau%(500), ...
sachant que chaque cellule d'un tel tableau contient 4 caractères. Cet exemple est donc suffisant pour des enregistrements jusqu'à une longueur de 2000 caractères. l faut aussi un MEMO (invisible) qui contiendra les données décodées des champs, une ligne par champ.

Bref, c'est un outil puissant à utiliser dans un contexte de gestion. Un programme de démo est disponiblen mais ce programme est plus qu'une simple démo. C'est un véritable "data manager" de données permettant de créer ou de modifier une structure d'enregistrement, et d'effectuer toutes ces opérations sur un tel fichier.

Le programme de démo contient un fichier d'aide permettant de comprendre le fonctionnement du programme. Mais comme tout cela est trop gros pour être posté ici, j'ai déposé un fichier ZIP sur mon site contenant l'ensemble: code source, exécutable, fichier de données avec 3 enregistrements (avec des données bidon mais lisibles), fichier d'aide de d'apropos, fichier de configuration mémorisant me nom du dernier fichier de données utilisé et du dernier fichier de définition des champs utilisé. Attention: ce fichier contient le chemin complet d'accès à ces éléments et doit donc être adapté. Ceci dit, cela peut se faire dans le programme - les chemins sont affichés avec un bouton "..." à côté de chacun, permettant de sélectionner le fichier, et les chemins se mettent en place automatiquement. Ces informations sont sauvegardées automatiquement en sortie du programme.

Voici le lien: http://klauspanoramic.infinityfreeapp.com/TRecord.zip
Le mieux est de dézipper cela dans un dossier du même nom et d'y ajouter KGF.dll  à télécharger aussi, par le lien dans ma signature.

Voici un "teaser":
Spoiler:

Petite remarque: tout est en anglais scratch scratch

Yannick aime ce message

Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyJeu 3 Mar 2022 - 1:10

Bonsoir Klaus :

C’est grandiose comme projet !
Merci du partage !

Malheureusement, je n’ai pas réussi à ouvrir un fichier .tr_config.
Que ce soit avec le fichier de démo que tu as fourni ou un autre que j’ai créé, la fonction LoadTRecordParameters retourne systématiquement « -1 ».

Par contre, la fonction SaveTRecordParameters fonctionne bien : elle retourne la valeur « 0 » et le fichier .tr_config est bien enregistré sur le disque.

Autre remarque, pour les floats, le point décimal du pavé numérique ne fonctionne pas. Il faut saisir une virgule. C’est sans grande importance, il suffit de le savoir.

Bonne continuation.




Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyJeu 3 Mar 2022 - 1:33

Ah bon ? As-tu effectué "New TRecord" avant de lancer "Load parametes" ? Voici ce que ça donne chez moi:
KGF_dll - nouvelles versions - Page 4 Aa192
La ligne d'état en bas indique le nombre de champs chargés...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyJeu 3 Mar 2022 - 2:02

KGF.dll V9.70 du 03/03/2022

Nouveautés:
- TRecord: nouveau type de données "binary"

Modules modifiés:
KGF.dll

La doc est en cours de rédaction.

Voici le lien pour le programme de démo: http://klauspanoramic.infinityfreeapp.com/TRecord.zip

Ce type de données peut être utile dans deux cas:
- pour un champ overlay recouvrant partiellement ou en totalité 1 ou plusieurs champs integer ou float
- pour un champ nomal (non overlay) our enregistrer du texte codé,, une petite image, etc
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyJeu 3 Mar 2022 - 3:15

Klaus a écrit:
As-tu effectué "New TRecord" avant de lancer "Load parametes" ?

Ah bien non… Désolé, effectivement cela fonctionne bien.
J’avais fait « New record » pour créer un nouveau fichier mais pas pour charger un fichier existant… Embarassed
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyJeu 3 Mar 2022 - 7:52

Oui, c'est nécessaire dans les deux cas.

Il faut d'abord créer un objet TRecord qui sert de support pour toutes les opérations suivantes.
On lui charge ensuite la définition des champs, soit par création directe, soit en chargeant un fichier de sauvegarde des champs.
Ensuite, on lui attache un fichier de données, soit par création soit en ouvrant un fichier existant.
Puis, le fichier est accessible jusqu'à ce qu'on le ferme.
Mais l'objet TRecord continue d'exister !
Sloit on lui attache un autre fichier, soit on supprime l'objet TRecord.

Je suis en train d'ajouter deux nouveaux types de champs: Date et Time...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 EmptyJeu 3 Mar 2022 - 12:41

KGF.dll V9.71 du 03/03/2022

Nouveautés:
- TRecord: nouveaux types de données "Date" et "Time"

Modules modifiés:
KGF.dll

La doc est en cours de rédaction.

Voici le lien pour le programme de démo: http://klauspanoramic.infinityfreeapp.com/TRecord.zip

Date et heure sont initialisées par défaut à la date et l'heure du moment.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: re   KGF_dll - nouvelles versions - Page 4 EmptyJeu 3 Mar 2022 - 22:56

Perso je vais attendre la doc... Embarassed
Revenir en haut Aller en bas
Contenu sponsorisé





KGF_dll - nouvelles versions - Page 4 Empty
MessageSujet: Re: KGF_dll - nouvelles versions   KGF_dll - nouvelles versions - Page 4 Empty

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Revenir en haut 
Page 4 sur 15Aller à la page : Précédent  1, 2, 3, 4, 5 ... 9 ... 15  Suivant
 Sujets similaires
-
» KGF_dll - nouvelles versions
» Nouvelles versions
» Synedit_Editor - nouvelles versions
» KGF_dll - nouvelles versions
» KGF_dll - nouvelles versions

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: