FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» TourD Version 2
par Minibug Aujourd'hui à 1:50

» La métamatière et le peuple
par JL35 Hier à 21:18

» Capture d'une zone de l'écran total
par JL35 Hier à 18:41

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Hier à 11:49

» qui peut résoudre mon prb
par pascal10000 Jeu 16 Nov 2017 - 17:30

» évènements et objets système : listage automatique
par Jean Claude Jeu 16 Nov 2017 - 11:15

» Panoramic et la reconnaissance vocale.
par papydall Jeu 16 Nov 2017 - 3:45

» Bizzarerie dans Edge
par Marc 37 Mer 15 Nov 2017 - 17:45

» KGF_dll - nouvelles versions
par Klaus Mer 15 Nov 2017 - 2:08

» Analyser un code Panoramic
par JL35 Lun 13 Nov 2017 - 18:38

» Un bonjour en passant...
par Minibug Dim 12 Nov 2017 - 19:57

» mise a jour calculatrice
par joeeee2017 Dim 12 Nov 2017 - 4:20

» comment accèder à l'heure et à la date d'un fichier
par Klaus Sam 11 Nov 2017 - 0:53

» Compilateur FBPano
par Jicehel Mer 8 Nov 2017 - 15:22

» Mon adresse e-mail
par treehouse Mer 8 Nov 2017 - 14:36

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2017
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
27282930   
CalendrierCalendrier

Partagez | 
 

 KGF_dll - nouvelles versions

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1 ... 8 ... 13, 14, 15  Suivant
AuteurMessage
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Ven 30 Juin 2017 - 6:46

Bravo Klaus !

Cette outils va être très utile dans les progs pour windows.
J' ai essayé toute la journée de faire cela en Panoramic mais c' est une galère... Neutral
tu pourras voir mon rendu dans le nouvel outils que je publie dans la foulée et qui est sur
mon webdev sous le nom de PanoLang.
Je te laisse découvrir les procédures l' une dans l' autre Embarassed 

FormViewDrap() pour le graphisme
DefineNbFlags() pour les définitions

c' est pas très catho tout çà ...
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Ven 30 Juin 2017 - 13:41

Nouvelle version:
KGF.dll V7.79 du 30/06/2017

Nouveautés:
- fonction FolderSelect: permettre de remonter dans l'arborescence des dossiers

Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sont à jour.

Suite à une remarque de Papydall, j'ai modifié cette fonction pour permettre de remonter dans l'arborescence des dossiers, au-dessus de la "racine" représentant le dossier initialement proposé, et même de changer de disque. Cecie st valable pour la version avec ou sans création de nouveau dossier (gérée par le 3ème paramètre). La doc reste inchangée.

Ceci permet en particulier, avec le programme de démo de mon post précédent, de choisir n'importe quel dossier sur n'importe quel disque?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 8 Juil 2017 - 13:06

Nouvelle version:
KGF.dll V7.81 du 08/07/2017

Nouveautés:
- KGF.ilb: ajout de nouvelles icônes (370 au total)
- nouvel objet: IconButton
- nouvelle fonction: GetImageViewFileNameFromPoint


Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sont à jour.

La doc est en cours de constitution.
La démo de l'objet IconButton a été publiée ici.

La nouvelle fonction GetImageViewFileNameFromPoint permet d'avoir le nom du fichier associé à une icône de l'objet ImageView, lors du survol du curseur sur l'objet. Dans le programme ci-dessous, cliquez sur le bouton "Créer", puis "Charger", choisissez un dossier contenant des images quelconques. Puis, lorsque le chargement est terminé, passez la souris sur les icônes et observez le libellé en bas de l'écran. Un clic sur une icône donne bien sûr le même nom que celui affiché lors du survol:
Code:
' test_ImageView.bas

label creer, charger, vider, supprimer, localiser
label haut, pprec, prec, suiv, psuiv, bas, UserEvent
label trace, close0

dim res%, IV%, IVhnd%, racine$, dossier$, current$
dim i%, f$, ext$, ind%, dern%, s0$, x0%, y0%, nom$
dim types$ : types$ = ".bmp.jpg.jpeg.gif.ico.png"


full_space 0
button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer
button 2 : top 2,10 : left 2,110 : caption 2,"Vider" : on_click 2,vider : inactive 2
button 3 : top 3,10 : left 3,200 : caption 3,"Supprimer" : on_click 3,supprimer : inactive 3
button 21 : top 21,10 : left 21,430 : caption 21,"Charger" : on_click 21,charger : inactive 21

dll_on "KGF.dll"

button 101 : top 101,40 : left 101,10 : caption 101,"Haut"        : on_click 101,haut  : inactive 101
button 102 : top 102,65 : left 102,10 : caption 102,"Page préc."  : on_click 102,pprec : inactive 102
button 103 : top 103,90 : left 103,10 : caption 103,"Ligne préc." : on_click 103,prec  : inactive 103
button 104 : top 104,115 : left 104,10 : caption 104,"Lign suiv." : on_click 104,suiv  : inactive 104
button 105 : top 105,140 : left 105,10 : caption 105,"Page suiv." : on_click 105,psuiv : inactive 105
button 106 : top 106,165 : left 106,10 : caption 106,"Bas"        : on_click 106,bas  : inactive 106

panel 200 : hide 200 : width 200,250 : color 200,255,255,0
  top 200,(screen_y-height(200))/2 : left 200,(screen_x-width(200))/2
  caption 200,"Chargement en cours..."
  font_size 200,16 :font_color 200,255,0,0 : font_bold 200
 
alpha 30 : top 30,700 : left 30,10 
timer 31 : timer_interval 31,200 : on_timer 31,trace

dern% = -1

on_user_event UserEvent
on_mouse_move 0,trace
on_close 0,close0

end

creer:
  if IV%<>0 then return
' message "a: "+str$(LV%) 
  IV% = dll_call5("CreateImageView",handle(0),50,50,adr(dern%),adr(IVhnd%))
' message "b: "+str$(LV%) 
  res% = dll_call5("ImageViewGeometry",IV%,90,40,400,500)
  inactive 1
  active 2
  active 3
  active 21
  return
 
vider:
  res% = dll_call1("ClearImageView",IV%)
    for i%=101 to 106
      inactive i%
    next i%
  dern% = -1
  return
 
supprimer:
  res% = dll_call1("DeleteImageView",IV%)
  if res%=0
    IV% = 0
    active 1
    inactive 2
    inactive 3
    inactive 21
    for i%=101 to 106
      inactive i%
    next i%
  end_if
  dern% = -1
  return
 
charger:
  current$ = dir_current$
  racine$ = dir_current$
  dossier$ = string$(255," ")
  res% = DLL_call4("FolderSelect",adr(racine$),adr(dossier$),len(dossier$),0)
  to_foreground 0
  dossier$ = trim$(dossier$)
  if dossier$=""
    dir_change current$
    return
  end_if
  dir_change dossier$
  f$ = file_find_first$
  inactive 0
  show 200
  timer_off 31
  repeat
    f$ = file_find_next$
    if f$="_" then exit_repeat
    if Left$(f$,1)<>"."
      ext$ = lower$(file_extract_extension$(f$))
      if instr(types$,ext$)>0
        res% = dll_call3("AddImageToImageView",IV%,adr(f$),adr(ind%))
      end_if
    end_if
  until f$="_"
  file_find_close
  active 0
  hide 200
  message "Chargement de "+str$(ind%+1)+" images terminé"+chr$(13)+chr$(10)+"Dernier indice visible: "+str$(dern%)
  dir_change current$
  for i%=101 to 106
    active i%
  next i%
  timer_on 31
  return
 
haut:
  res% = dll_call3("ScrollImageView",IV%,1,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
 
pprec:
  res% = dll_call3("ScrollImageView",IV%,2,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
 
prec:
  res% = dll_call3("ScrollImageView",IV%,3,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
 
suiv:
  res% = dll_call3("ScrollImageView",IV%,4,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
 
psuiv:
  res% = dll_call3("ScrollImageView",IV%,5,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
 
bas:
  res% = dll_call3("ScrollImageView",IV%,6,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
   
localiser:
  if dern%<0 then return
  x% = mouse_x_left_down(100)
  y% = mouse_y_left_down(100)
  nom$ = string$(255," ")
  res% = dll_call4("GetListImageFileName",IV%,x%,y%,adr(nom$))
  nom$ = trim$(nom$)
  message "Indice: "+str$(res%)+"  "+nom$
  return

UserEvent:
  if User_Event_LParam<>hex("03000000") then return : ' pas ImageView ?
  if bin_and(User_Event_WParam,hex("FFFF0000"))<>hex("00010000") then return : ' pas ImageSelect ?
  ind% = bin_and(User_Event_WParam,hex("0000FFFF"))
'  message "WPARAM="+hex$(User_Event_WParam)+"  "+"LPARAM="+hex$(User_Event_LParam)
  nom$ = string$(255," ")
  res% = dll_call3("GetImageViewFileName",IV%,ind%,adr(nom$))
  nom$ = trim$(nom$)
  message "indice="+str$(ind%)+"  "+nom$
  return


trace: 
  res% = dll_call3("GetMousePosition",IVhnd%,adr(x0%),adr(y0%))
  s0$ = string$(255," ")
  res% = dll_call4("GetImageViewFileNameFromPoint",IV%,x0%,y0%,adr(s0$))
  caption 30,"("+str$(x0%)+","+str$(y0%)+ ") Fichier "+str$(res%)+": "+trim$(s0$)
  return

close0:
  timer_off 31
  res% = dll_call1("DeleteImageView",IV%)
  dll_off
  return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 8 Juil 2017 - 15:33

@ Klaus,

Il est 14h32 et je n' arrive pas à acceder à ton dossier "Dll" sur ton webdev.
Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 8 Juil 2017 - 15:47

Curieux... Pour moi, le WebDav est accessible, et je n'ai mis aucune restriction. Donc, réessaye, ou prends la DLL sur mon site via le lien KGF.dll dans ma signature, ou va directement sur mon site ou mon site miroir - tout est mis à jour.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Sam 8 Juil 2017 - 15:50

14h49 ....ouf!...ca y est ! j' ai réussi à télécharger KGF.dll et KGF.ilb.
tongue

( peut-être une maintenance du serveur ou un coup de chaud... Laughing )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 9 Juil 2017 - 14:25

La doc de la dernière version de KGF.dll est à jour - sur le WebDav, sur les deux sites internet et sur la documentation en ligne. Cela concerne particulièrement les nouveaux objets ImageList et IconButton.

Par ailleurs, Jack vient de pubier la version PANORAMIC_EDITOR V0 9 28i12 du 08 07 2017. Cette version apporte entre autres la correction du problème d'inversion des valeurs de USER_EVENT_WPARAM et USER_EVENT_LPARAM. Je remets donc ici les codes des 3 programmes de démo pour les nouiveaux objets ci-dessus, tenant compte de cette nouveauté (ne pas oublier d'installer cette version de Panoramic pour cela !):

test_ImageView.bas:
Code:
' test_ImageView.bas

label creer, charger, vider, supprimer, localiser
label haut, pprec, prec, suiv, psuiv, bas, UserEvent
label trace, close0

dim res%, IV%, IVhnd%, racine$, dossier$, current$
dim i%, f$, ext$, ind%, dern%, s0$, x0%, y0%, nom$
dim types$ : types$ = ".bmp.jpg.jpeg.gif.ico.png"


full_space 0
button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer
button 2 : top 2,10 : left 2,110 : caption 2,"Vider" : on_click 2,vider : inactive 2
button 3 : top 3,10 : left 3,200 : caption 3,"Supprimer" : on_click 3,supprimer : inactive 3
button 21 : top 21,10 : left 21,430 : caption 21,"Charger" : on_click 21,charger : inactive 21

dll_on "KGF.dll"

button 101 : top 101,40 : left 101,10 : caption 101,"Haut"        : on_click 101,haut  : inactive 101
button 102 : top 102,65 : left 102,10 : caption 102,"Page préc."  : on_click 102,pprec : inactive 102
button 103 : top 103,90 : left 103,10 : caption 103,"Ligne préc." : on_click 103,prec  : inactive 103
button 104 : top 104,115 : left 104,10 : caption 104,"Lign suiv." : on_click 104,suiv  : inactive 104
button 105 : top 105,140 : left 105,10 : caption 105,"Page suiv." : on_click 105,psuiv : inactive 105
button 106 : top 106,165 : left 106,10 : caption 106,"Bas"        : on_click 106,bas  : inactive 106

panel 200 : hide 200 : width 200,250 : color 200,255,255,0
  top 200,(screen_y-height(200))/2 : left 200,(screen_x-width(200))/2
  caption 200,"Chargement en cours..."
  font_size 200,16 :font_color 200,255,0,0 : font_bold 200
 
alpha 30 : top 30,700 : left 30,10 
timer 31 : timer_interval 31,200 : on_timer 31,trace

dern% = -1

on_user_event UserEvent
on_mouse_move 0,trace
on_close 0,close0

end

creer:
  if IV%<>0 then return
' message "a: "+str$(LV%) 
  IV% = dll_call5("CreateImageView",handle(0),50,50,adr(dern%),adr(IVhnd%))
' message "b: "+str$(LV%) 
  res% = dll_call5("ImageViewGeometry",IV%,90,40,400,500)
  inactive 1
  active 2
  active 3
  active 21
  return
 
vider:
  res% = dll_call1("ClearImageView",IV%)
    for i%=101 to 106
      inactive i%
    next i%
  dern% = -1
  return
 
supprimer:
  res% = dll_call1("DeleteImageView",IV%)
  if res%=0
    IV% = 0
    active 1
    inactive 2
    inactive 3
    inactive 21
    for i%=101 to 106
      inactive i%
    next i%
  end_if
  dern% = -1
  return
 
charger:
  current$ = dir_current$
  racine$ = dir_current$
  dossier$ = string$(255," ")
  res% = DLL_call4("FolderSelect",adr(racine$),adr(dossier$),len(dossier$),0)
  to_foreground 0
  dossier$ = trim$(dossier$)
  if dossier$=""
    dir_change current$
    return
  end_if
  dir_change dossier$
  f$ = file_find_first$
  inactive 0
  show 200
  timer_off 31
  repeat
    f$ = file_find_next$
    if f$="_" then exit_repeat
    if Left$(f$,1)<>"."
      ext$ = lower$(file_extract_extension$(f$))
      if instr(types$,ext$)>0
        res% = dll_call3("AddImageToImageView",IV%,adr(f$),adr(ind%))
      end_if
    end_if
  until f$="_"
  file_find_close
  active 0
  hide 200
  message "Chargement de "+str$(ind%+1)+" images terminé"+chr$(13)+chr$(10)+"Dernier indice visible: "+str$(dern%)
  dir_change current$
  for i%=101 to 106
    active i%
  next i%
  timer_on 31
  return
 
haut:
  res% = dll_call3("ScrollImageView",IV%,1,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
 
pprec:
  res% = dll_call3("ScrollImageView",IV%,2,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
 
prec:
  res% = dll_call3("ScrollImageView",IV%,3,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
 
suiv:
  res% = dll_call3("ScrollImageView",IV%,4,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
 
psuiv:
  res% = dll_call3("ScrollImageView",IV%,5,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
 
bas:
  res% = dll_call3("ScrollImageView",IV%,6,adr(dern%))
  message "Dernier indice visible: "+str$(dern%)
  return
   
localiser:
  if dern%<0 then return
  x% = mouse_x_left_down(100)
  y% = mouse_y_left_down(100)
  nom$ = string$(255," ")
  res% = dll_call4("GetListImageFileName",IV%,x%,y%,adr(nom$))
  nom$ = trim$(nom$)
  message "Indice: "+str$(res%)+"  "+nom$
  return

UserEvent:
  if User_Event_WParam<>hex("03000000") then return : ' pas ImageView ?
  if bin_and(User_Event_LParam,hex("FFFF0000"))<>hex("00010000") then return : ' pas ImageSelect ?
  ind% = bin_and(User_Event_LParam,hex("0000FFFF"))
'  message "WPARAM="+hex$(User_Event_WParam)+"  "+"LPARAM="+hex$(User_Event_LParam)
  nom$ = string$(255," ")
  res% = dll_call3("GetImageViewFileName",IV%,ind%,adr(nom$))
  nom$ = trim$(nom$)
  message "indice="+str$(ind%)+"  "+nom$
  return


trace: 
  res% = dll_call3("GetMousePosition",IVhnd%,adr(x0%),adr(y0%))
  s0$ = string$(255," ")
  res% = dll_call4("GetImageViewFileNameFromPoint",IV%,x0%,y0%,adr(s0$))
  caption 30,"("+str$(x0%)+","+str$(y0%)+ ") Fichier "+str$(res%)+": "+trim$(s0$)
  return

close0:
  timer_off 31
  res% = dll_call1("DeleteImageView",IV%)
  dll_off
  return

test_IconButton.bas:
Code:
' test_IconButton.bas

label creer, supprimer, images, image1, image2, image3, image0, UserEvent
label stretch, stretch1, stretch2, stretch3
label imglist, imglist1, imglist2, imglist3, imglist0

dim res%, IBTN1%, IBTN2%, IBTN3%, IL%, nb%, hint$
dim f$, stretch1%, stretch2%, stretch3%, x%, nlist%
dim size% : size% = 32
dim m1% : m1% = -1
dim stretch% : stretch% = 0
stretch1% = stretch%
stretch2% = stretch%
stretch3% = stretch%
dim ilb$ : ilb$ = "KGF.ilb"

on_user_event UserEvent

dll_on "KGF.dll"

button 1 : top 1,10 : left 1,10 : caption 1,"Créer" : on_click 1,creer
button 2 : top 2,10 : left 2,100 : caption 2,"Supprimer" : on_click 2,supprimer : inactive 2

button 3 : top 3,10 : left 3,220 : caption 3,"Images" : width 3,80 : on_click 3,images : inactive 3
button 31 : top 31,35 : left 31,220 : caption 31,"1" : width 31,20 : on_click 31,image1 : inactive 31
button 32 : top 32,35 : left 32,250 : caption 32,"2" : width 32,20 : on_click 32,image2 : inactive 32
button 33 : top 33,35 : left 33,280 : caption 33,"3" : width 33,20 : on_click 33,image3 : inactive 33
button 39 : top 39,60 : left 39,220 : caption 39,"Effacer" : width 39,80 : on_click 39,image0 : inactive 39

button 4 : top 4,10 : left 4,320 : caption 4,"Stretch on" : width 4,80 : on_click 4,stretch : inactive 4
button 41 : top 41,35 : left 41,320 : caption 41,"1" : width 41,20 : on_click 41,stretch1 : inactive 41
button 42 : top 42,35 : left 42,350 : caption 42,"2" : width 42,20 : on_click 42,stretch2 : inactive 42
button 43 : top 43,35 : left 43,380 : caption 43,"3" : width 43,20 : on_click 43,stretch3 : inactive 43

button 5 : top 5,10 : left 5,420 : caption 5,"ImageList" : width 5,80 : on_click 5,imglist : inactive 5
button 51 : top 51,35 : left 51,420 : caption 51,"1" : width 51,20 : on_click 51,imglist1 : inactive 51
button 52 : top 52,35 : left 52,450 : caption 52,"2" : width 52,20 : on_click 52,imglist2 : inactive 52
button 53 : top 53,35 : left 53,480 : caption 53,"3" : width 53,20 : on_click 53,imglist3 : inactive 53
button 59 : top 59,60 : left 59,420 : caption 59,"Effacer" : width 59,80 : on_click 59,imglist0 : inactive 59

open_dialog 99 : filter 99,"Images|*.ico;*.bmp;*.jpg"

IL% = dll_call2("CreateImageList",16,16)
nlist% = dll_call2("LoadImageList",IL%,adr(ilb$))
message ilb$+" contient "+str$(nlist%)+" icônes"

end


creer:
  x% = 40
  IBTN1% = dll_call3("CreateIconButton",handle(0),1,M1%)
  res% = dll_call6("IconButtonGeometry",IBTN1%,x%,100,size%,size%,stretch1%)
  hint$ = "Ceci est le bouton 1"
  res% = dll_call2("SetIconButtonHint",IBTN1%,adr(hint$))
 
  x% = x% + size%
  IBTN2% = dll_call3("CreateIconButton",handle(0),2,M1%)
  res% = dll_call6("IconButtonGeometry",IBTN2%,x%,100,size%,size%,stretch2%)
  hint$ = "Ceci est le bouton 2"
  res% = dll_call2("SetIconButtonHint",IBTN2%,adr(hint$))
 
  x% = x% + size%
  IBTN3% = dll_call3("CreateIconButton",handle(0),3,M1%)
  res% = dll_call6("IconButtonGeometry",IBTN3%,x%,100,size%,size%,stretch3%)
  hint$ = "Ceci est le bouton 3"
  res% = dll_call2("SetIconButtonHint",IBTN3%,adr(hint$))
 
  inactive 1
  active 2
  active 3
  active 31
  active 32
  active 33
  active 39
  active 4
  active 41
  active 42
  active 43
  active 5
  active 51
  active 52
  active 53
  active 59
  return

supprimer:
  res% = dll_call1("DeleteIconButton",IBTN1%)
  if res%=0 then IBTN1% = 0
  res% = dll_call1("DeleteIconButton",IBTN2%)
  if res%=0 then IBTN2% = 0
  res% = dll_call1("DeleteIconButton",IBTN3%)
  if res%=0 then IBTN3% = 0
  if (IBTN1%=0) and (IBTN2%=0) and (IBTN3%=0)
    inactive 2
    inactive 3
    inactive 31
    inactive 32
    inactive 33
    inactive 39
    inactive 4
    inactive 41
    inactive 42
    inactive 43
    inactive 5
    inactive 51
    inactive 52
    inactive 53
    inactive 59
    active 1
  end_if
  return
 
images:
  ChargerImage(IBTN1%)
  ChargerImage(IBTN2%)
  ChargerImage(IBTN3%)
  return
 
image1:
  ChargerImage(IBTN1%)
  return
image2:
  ChargerImage(IBTN2%)
  return
image3:
  ChargerImage(IBTN3%)
  return
image0:
  res% = dll_call2("SetIconButtonImage",IBTN1%,0)
  res% = dll_call2("SetIconButtonImage",IBTN2%,0)
  res% = dll_call2("SetIconButtonImage",IBTN3%,0)
  return
 
sub ChargerImage(IBTN%)
  f$ = file_name$(99)
  if f$="_" then return
  if file_exists(f$)=0 then return
  res% = dll_call2("SetIconButtonImage",IBTN%,adr(f$))
end_sub

stretch:
  stretch% = 1 - stretch%
  select stretch%
    case 0
      caption 4,"Stretch on"
    case 1
      caption 4,"Stretch off"
  end_select
  stretch1% = stretch%
  stretch2% = stretch%
  stretch3% = stretch%
  Stretch(IBTN1%,stretch1%)
  Stretch(IBTN2%,stretch2%)
  Stretch(IBTN3%,stretch3%)
  return
 
stretch1:
  stretch1% = 1 - stretch1%
  Stretch(IBTN1%,stretch1%)
  return
 
stretch2:
  stretch2% = 1 - stretch2%
  Stretch(IBTN2%,stretch2%)
  return
 
stretch3:
  stretch3% = 1 - stretch3%
  Stretch(IBTN3%,stretch3%)
  return
 
sub Stretch(IBTN%,stretch%)
  res% = dll_call6("IconButtonGeometry",IBTN%,M1%,M1%,M1%,M1%,stretch%)
end_sub
 
imglist:
  ImgList(IBTN1%)
  ImgList(IBTN2%)
  ImgList(IBTN3%)
  return
 
imglist1:
  ImgList(IBTN1%)
  return

imglist2:
  ImgList(IBTN2%)
  return

imglist3:
  ImgList(IBTN3%)
  return
 
imglist0:
  res% = dll_call3("SetIconButtonImageList",IBTN1%,IL%,0)
  res% = dll_call3("SetIconButtonImageList",IBTN2%,IL%,0)
  res% = dll_call3("SetIconButtonImageList",IBTN3%,IL%,0)
  return

sub ImgList(IBTN%)
  dim_local ind%
  ind% = int(rnd(nlist%))+1
  res% = dll_call3("SetIconButtonImageList",IBTN%,IL%,ind%)
end_sub

UserEvent:
  nb% = bin_and(USER_EVENT_LPARAM,hex("FFFF"))
  message "UserEvent WPARAM="+hex$(USER_EVENT_WPARAM)+"  LPARAM="+hex$(USER_EVENT_LPARAM)+"  Bouton "+str$(nb%)
  return

demo_toolbars_avec_IconButtons.bas:
Code:
' demo_toolbars_avec_IconButtons.bas

label UserEvent

dim TB1%, TB2%  : ' les toolbars (des containers ou panels
dim IB1%(5)      : ' les IconButton pour TB1%
dim IB2%(8)      : ' les IconButton pour TB2%
dim IL%          : ' ImageList pour KGF.ilb (ou une autre ILD...)

dim M1% : M1% = -1
dim size% : size% = 20
dim ilb$ : ilb$ = "KGF.ilb"

dim res%, i%, j%, k%, hint$, nb%, nlist%, nt%

dll_on "KGF.dll"

on_user_event UserEvent

TB1% = 1 : TB2% = 2

panel TB1% : top TB1%,30 : left TB1%,10 : width TB1%,110 : height TB1%,30
  color TB1%,0,255,255
panel TB2% : top TB2%,30 : left TB2%,120 : width TB2%,90 : height TB2%,50
  color TB2%,255,255,0
 
IL% = dll_call2("CreateImageList",16,16)
nlist% = dll_call2("LoadImageList",IL%,adr(ilb$))
 
for i%=1 to 5
  IB1%(i%) = dll_call3("CreateIconButton",handle(TB1%),256+i%,M1%)
  res% = dll_call6("IconButtonGeometry",IB1%(i%),5,5,size%,size%,1)
  if i%>1 then res% = dll_call3("DockIconButtonToIconButton",IB1%(i%),IB1%(i%-1),3)
  hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 1"
  res% = dll_call2("SetIconButtonHint",IB1%(i%),adr(hint$))
  ImgList(IB1%(i%))
next i%

for k%=1 to 2
  for j%=1 to 4
    i% = (k%-1)*4 + j%
    IB2%(i%) = dll_call3("CreateIconButton",handle(TB2%),512+i%,M1%)
    res% = dll_call6("IconButtonGeometry",IB2%(i%),5,5,size%,size%,1)
    if (i%>1) and (i%<=4) then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(i%-1),3)
    if i%=5 then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(1),4)
    if (i%>5) and (i%<=8) then res% = dll_call3("DockIconButtonToIconButton",IB2%(i%),IB2%(i%-1),3)
    hint$ = "Ceci est le bouton "+str$(i%)+" de la toolbar 2"
    res% = dll_call2("SetIconButtonHint",IB2%(i%),adr(hint$))
    ImgList(IB2%(i%))
  next j%
next k%

pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),2)
pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),3)
pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),4)
pause 1000
res% = dll_call3("DockOjects",handle(1),handle(2),1)

end

sub ImgList(IBTN%)
  dim_local ind%
  ind% = int(rnd(nlist%))+1
  res% = dll_call3("SetIconButtonImageList",IBTN%,IL%,ind%)
end_sub


UserEvent:
  nb% = bin_and(USER_EVENT_LPARAM,hex("00FF"))
  nt% = (bin_and(USER_EVENT_LPARAM,hex("FF00"))/256)
  message "UserEvent WPARAM="+hex$(USER_EVENT_WPARAM)+"  LPARAM="+hex$(USER_EVENT_LPARAM)+"  Bouton "+str$(nb%)+" de ToolBar "+str$(nt%)
  return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 13 Juil 2017 - 3:08

Nouvelle version:
KGF.dll V7.82 du 13/07/2017

Nouveautés:
- nouvelles fonctions DeclarePanoramicObject, FindPanoramicObject et FreePanoramicObjects

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

Ces fonctions permettent d'ientifier on objet Panoramic par des coordonnées X et Y, retournées par exemple par la fonction GetMousePosition de KGF.dll. Pour cela, on déclare tous les objets avec DeclarePanoramicObject. Ensuite, la fonction FindPanoramicObject retourne le numéro de l'objet dans lequel se trouvent les coordonnées X et Y passées en paramètre, ou -1 si rien n'est trouvé. La fonction FreePanoramicObjects efface la liste des objets créée par DeclarePanoramicObject, sans supprimer les objets eux-mêmes, bien sûr.

Ceci est appliqué dans la démo ci-dessous. Chosir "Panoramic" dans la combo en haut à gauche et promener le curseur dans la fenêtre. La barre de titre montre le resultat.
Code:
' SurveillerLaSouris.bas

label tick

dim x%, y%, res%,Numero%

dll_on "KGF.dll"

combo 10 : width 10,150
  item_add 10,"Survol avec Panoramic"
  item_add 10,"Survol avec KGF.dll"
  item_select 10,1

memo 1 : top 1,30 : left 1,100
alpha 2 : top 2,150 : left 2,10 : caption 2,"Alpha 2"

res% = dll_call6("DeclarePanoramicObject",object_internal(10),10, 0,0,width(10),height(10))
res% = dll_call6("DeclarePanoramicObject",object_internal(1),1, 100,30,width(1),height(1))
res% = dll_call6("DeclarePanoramicObject",object_internal(2),2, 10,150,width(2),height(2))
res% = dll_call6("DeclarePanoramicObject",0,0, 0,0,width_client(0),height_client(0))

timer 99 : timer_interval 99,100 : on_timer 99,tick

end

tick:
  if item_index(10)=1
    x% = mouse_x_position(0)
    y% = mouse_y_position(0)
  else
    res% = dll_call3("GetMousePosition",handle(0),adr(x%),adr(y%))
  end_if
  Numero% = dll_call2("FindPanoramicObject",x%,y%)
  caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)
  return
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 13 Juil 2017 - 15:39

Nouvelle version:
KGF.dll V7.83 du 13/07/2017

Nouveautés:
- modification des fonction DeclarePanoramicObject et FindPanoramicObject

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

La fonction DeclarePanoramicObject n'a plus que deux paramètres, et a fonction FindPanoramicObject a un paramètre supplémentaire. On n'a plus besoin de déclarer la position et les dimensions de chaque objet. La function FindPanoramicObject les trouve elle-même. Par contre, la fonction FindPanoramicObject retourne an plus du numéro d'objet Panoramic, une chaîne de caractères donnant le type de l'objet (en notation Delphi).

Voici le programme démo, adapté à cela, et avec un PICTURE en plus:
Code:
' SurveillerLaSouris.bas

label tick

dim x%, y%, res%,Numero%
dim txt$ : txt$ = string$(100," ")

dll_on "KGF.dll"

combo 10 : width 10,150
  item_add 10,"Survol avec Panoramic"
  item_add 10,"Survol avec KGF.dll"
  item_select 10,2

memo 1 : top 1,30 : left 1,100
alpha 2 : top 2,150 : left 2,10 : caption 2,"Alpha 2"
picture 3 : top 3,150 : left 3,200

res% = dll_call2("DeclarePanoramicObject",object_internal(10),10)
res% = dll_call2("DeclarePanoramicObject",object_internal(1),1)
res% = dll_call2("DeclarePanoramicObject",object_internal(2),2)
res% = dll_call2("DeclarePanoramicObject",object_internal(3),3)
res% = dll_call2("DeclarePanoramicObject",0,0)

timer 99 : timer_interval 99,100 : on_timer 99,tick

end

tick:
  if item_index(10)=1
    x% = mouse_x_position(0)
    y% = mouse_y_position(0)
  else
    res% = dll_call3("GetMousePosition",handle(0),adr(x%),adr(y%))
  end_if
'  Numero% = dll_call2("FindPanoramicObject",x%,y%)
'  caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)
  Numero% = dll_call3("FindPanoramicObject",x%,y%,adr(txt$))
  caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)+" = "+trim$(txt$)
  return
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Jeu 13 Juil 2017 - 22:21

Nouvelle version:
KGF.dll V7.84 du 13/07/2017

Nouveautés:
- FindPanoramicObject: trouver même les objets enfants de... enfants de... etc

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

En voici un exemple avec cette démo contenant un container avec un bouton et un panel qui contient de son côté 2 objets check:
Code:
' SurveillerLaSouris.bas

label tick

dim x%, y%, res%,Numero%
dim txt$ : txt$ = string$(100," ")

dll_on "KGF.dll"

combo 10 : width 10,150
  item_add 10,"Survol avec Panoramic"
  item_add 10,"Survol avec KGF.dll"
  item_select 10,2

memo 1 : top 1,30 : left 1,100
alpha 2 : top 2,150 : left 2,10 : caption 2,"Alpha 2"
picture 3 : top 3,150 : left 3,200

container 20 : top 20,100 : left 20,350 : width 20,200 : height 20,300
  caption 20,"Un container"
button 21 : parent 21,20 : top 21,20 : left 21,40
panel 30 : parent 30,20 : top 30,50 : left 30,20 : width 30,150 : height 30,200

check 31 : parent 31,30 : caption 31,"Check 31" : top 31,20 : left 31,10
check 32 : parent 32,30 : caption 32,"Check 32" : top 32,50 : left 32,10

res% = dll_call2("DeclarePanoramicObject",object_internal(10),10)
res% = dll_call2("DeclarePanoramicObject",object_internal(1),1)
res% = dll_call2("DeclarePanoramicObject",object_internal(2),2)
res% = dll_call2("DeclarePanoramicObject",object_internal(3),3)

    res% = dll_call2("DeclarePanoramicObject",object_internal(31),31)
    res% = dll_call2("DeclarePanoramicObject",object_internal(32),32)
    res% = dll_call2("DeclarePanoramicObject",object_internal(30),30)

  res% = dll_call2("DeclarePanoramicObject",object_internal(21),21)
  res% = dll_call2("DeclarePanoramicObject",object_internal(20),20)

res% = dll_call2("DeclarePanoramicObject",object_internal(0),0)

timer 99 : timer_interval 99,100 : on_timer 99,tick

end

tick:
  if item_index(10)=1
    x% = mouse_x_position(0)
    y% = mouse_y_position(0)
  else
    res% = dll_call3("GetMousePosition",handle(0),adr(x%),adr(y%))
  end_if
'  Numero% = dll_call2("FindPanoramicObject",x%,y%)
'  caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)
  Numero% = dll_call3("FindPanoramicObject",x%,y%,adr(txt$))
  caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)+" = "+trim$(txt$)
  return
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Sam 15 Juil 2017 - 16:46

Nouvelle version:
KGF.dll V7.85 du 15/07/2017

Nouveautés:
- GetObjectTree: permettre de commencer par a form 0

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

Cette amélioration entraîne une légère modification de la syntaxe d'appel de cette fonction (Handle() au lieu de Object_Interna() pour le deuxième paramètre. En voici l'utilisation, montrée à l'aide du programme de démo de l'identification des objets par survol:
Code:
' SurveillerLaSouris.bas

label tick

dim x%, y%, res%,Numero%
dim txt$ : txt$ = string$(100," ")

dll_on "KGF.dll"

combo 10 : width 10,150
  item_add 10,"Survol avec Panoramic"
  item_add 10,"Survol avec KGF.dll"
  item_select 10,2

memo 1 : top 1,30 : left 1,100
alpha 2 : top 2,150 : left 2,10 : caption 2,"Alpha 2"
picture 3 : top 3,150 : left 3,200

container 20 : top 20,100 : left 20,350 : width 20,200 : height 20,300
  caption 20,"Un container"
button 21 : parent 21,20 : top 21,20 : left 21,40
panel 30 : parent 30,20 : top 30,50 : left 30,20 : width 30,150 : height 30,200

check 31 : parent 31,30 : caption 31,"Check 31" : top 31,20 : left 31,10
check 32 : parent 32,30 : caption 32,"Check 32" : top 32,50 : left 32,10

list 50 : top 50,180 : left 50,10 : height 50,200

res% = dll_call2("DeclarePanoramicObject",object_internal(10),10)
res% = dll_call2("DeclarePanoramicObject",object_internal(1),1)
res% = dll_call2("DeclarePanoramicObject",object_internal(2),2)
res% = dll_call2("DeclarePanoramicObject",object_internal(3),3)
res% = dll_call2("DeclarePanoramicObject",object_internal(50),50)

    res% = dll_call2("DeclarePanoramicObject",object_internal(31),31)
    res% = dll_call2("DeclarePanoramicObject",object_internal(32),32)
    res% = dll_call2("DeclarePanoramicObject",object_internal(30),30)

  res% = dll_call2("DeclarePanoramicObject",object_internal(21),21)
  res% = dll_call2("DeclarePanoramicObject",object_internal(20),20)

res% = dll_call2("DeclarePanoramicObject",object_internal(0),0)

res% = dll_call3("GetObjectTree",object_internal(0),handle(50),0)

timer 99 : timer_interval 99,100 : on_timer 99,tick

end

tick:
  if item_index(10)=1
    x% = mouse_x_position(0)
    y% = mouse_y_position(0)
  else
    res% = dll_call3("GetMousePosition",handle(0),adr(x%),adr(y%))
  end_if
'  Numero% = dll_call2("FindPanoramicObject",x%,y%)
'  caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)
  Numero% = dll_call3("FindPanoramicObject",x%,y%,adr(txt$))
  caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)+" = "+trim$(txt$)
  return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
pascal10000

avatar

Nombre de messages : 548
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 16 Juil 2017 - 12:37

bonjour klaus

A ta nouvelle commande "DeclarePanoramicObject" il y a un p'tit hic
lorsque on déclare un deuxième form kgf reconnai celui-ci mais dès
que le form est en dehor du form 0 il n'est plus reconus il marque -1

Code:
   ' SurveillerLaSouris.bas

    label tick

    dim x%, y%, res%,Numero%
    dim txt$ : txt$ = string$(100," ")

dll_on "C:\Program Files\PanoBasic\kgf.dll"

    combo 10 : width 10,150
      item_add 10,"Survol avec Panoramic"
      item_add 10,"Survol avec KGF.dll"
      item_select 10,2

        button 21 : top 21,20 : left 21,40

        form  60 : top 60,100 : left 60,350 : width 60,200 : height 60,300

    res% = dll_call2("DeclarePanoramicObject",object_internal(60),60)  

    res% = dll_call2("DeclarePanoramicObject",object_internal(21),21)  
    res% = dll_call2("DeclarePanoramicObject",object_internal(0),0)  
    
    timer 99 : timer_interval 99,100 : on_timer 99,tick
end

    tick:
      if item_index(10)=1
        x% = mouse_x_position(0)
        y% = mouse_y_position(0)
      else
        res% = dll_call3("GetMousePosition",handle(0),adr(x%),adr(y%))
      end_if
    '  Numero% = dll_call2("FindPanoramicObject",x%,y%)
    '  caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)
      Numero% = dll_call3("FindPanoramicObject",x%,y%,adr(txt$))
      caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)+" = "+trim$(txt$)
      return

je t'ai fait ce p'tit code pour t'en rendre compte
bon w-end
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Dim 16 Juil 2017 - 13:06

Merci d'avoir signalé cela. Je vais y remédier !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 17 Juil 2017 - 11:53

En fait; la solution est simple, Pascal10000 ! Au lieu d'utiliser GetMousePosition, tu utilises GetAbsoluteMousePosition, et tout marche bien:
Code:
    ' SurveillerLaSouris.bas

    label tick

    dim x%, y%, res%,Numero%
    dim txt$ : txt$ = string$(100," ")

dll_on "kgf.dll"

    combo 10 : width 10,150
      item_add 10,"Survol avec Panoramic"
      item_add 10,"Survol avec KGF.dll"
      item_select 10,2

        button 21 : top 21,20 : left 21,40

        form  60 : top 60,100 : left 60,350 : width 60,200 : height 60,300

    res% = dll_call2("DeclarePanoramicObject",object_internal(60),60) 

    res% = dll_call2("DeclarePanoramicObject",object_internal(21),21) 
    res% = dll_call2("DeclarePanoramicObject",object_internal(0),0) 
   
    timer 99 : timer_interval 99,100 : on_timer 99,tick
end

    tick:
      if item_index(10)=1
        x% = mouse_x_position(0)
        y% = mouse_y_position(0)
      else
'        res% = dll_call3("GetMousePosition",handle(0),adr(x%),adr(y%))
        res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%))
      end_if
    '  Numero% = dll_call2("FindPanoramicObject",x%,y%)
    '  caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)
      Numero% = dll_call3("FindPanoramicObject",x%,y%,adr(txt$))
      caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)+" = "+trim$(txt$)
      return

Et pour être complet, voici mon programme de démo, utilisant la même fonction:
Code:
    ' SurveillerLaSouris.bas

    label tick

    dim x%, y%, res%,Numero%
    dim txt$ : txt$ = string$(100," ")

dll_on "kgf.dll"

    combo 10 : width 10,150
      item_add 10,"Survol avec Panoramic"
      item_add 10,"Survol avec KGF.dll"
      item_select 10,2

        button 21 : top 21,20 : left 21,40

        form  60 : top 60,100 : left 60,350 : width 60,200 : height 60,300

    res% = dll_call2("DeclarePanoramicObject",object_internal(60),60) 

    res% = dll_call2("DeclarePanoramicObject",object_internal(21),21) 
    res% = dll_call2("DeclarePanoramicObject",object_internal(0),0) 
   
    timer 99 : timer_interval 99,100 : on_timer 99,tick
end

    tick:
      if item_index(10)=1
        x% = mouse_x_position(0)
        y% = mouse_y_position(0)
      else
'        res% = dll_call3("GetMousePosition",handle(0),adr(x%),adr(y%))
        res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%))
      end_if
    '  Numero% = dll_call2("FindPanoramicObject",x%,y%)
    '  caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)
      Numero% = dll_call3("FindPanoramicObject",x%,y%,adr(txt$))
      caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)+" = "+trim$(txt$)
      return

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 17 Juil 2017 - 13:41

Nouvelle version:
KGF.dll V7.86 du 17/07/2017

Nouveautés:
- SyneditFunction: nouveau code 47 = gestion de la largeur de tabulatioin

Modules modifiés:
KGF.dll
KGF.chm


La doc et les sources sont à jour.

Ce nouveau code permet de connaître la largeur de tabulation en cours (avec par%=0) ou d'imposer la nouvelle largeur de tabulation (avec par%=nouvelle largeur).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Juil 2017 - 19:06

cheers En voilà une idée quelle est bonne.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Juil 2017 - 19:21

@ Klaus,

Comme d' hab, je suis en décalé sur le sujet du moment.
La question concerne la fonction d' encryptage.

Y a t il un moyen de déterminer si un fichier est encrypté ou pas ?

Je suis sur une application qui édite des listes de lecture pour un logiciel.
Sauf que certaines de ces listes ne sont pas à mettre sous les yeux de tout le monde.
J' ai donc mis en place l' encryptage du fichier à l' enregistrement avec la fonction de KGF.
pwd1$ est défini par l' application et pwd2$ est laissé à la volonté de l' utilisateur via un message_input$.

Sauf que, lorsque je veux ouvrir un fichier, si je mets d' office le décryptage et que le fichier ne l' est pas...
affraid Je crypte mon fichier et bonjour les hiéroglyphes farao .
Et, si le fichier l' est et que je ne mets pas une procédure de décryptage...
affraid encore des hiéroglyphes  farao .

Donc, il me faudrait savoir si il y a un marqueur dans le fichier encrypté qui me permette de déterminé
si oui ou non l' application doit proposer la procédure de décryptage.

As tu une réponse à la question ?
( Cela m' éviterai de crypter des dizaines de fichiers et de les analyser pour le savoir. Laughing )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Lun 17 Juil 2017 - 19:43

La réponse est simple:
Tu places une première ligne dans le fichiern avec un texte banal, mais identique pour tous ces fichiers possiblement cryptés. A l'ouverture, tu commences par lire la première ligne, et tu décides:
- si elle contient ton texte spécial, alors le fichier n'est pas crypté.
- sinon, il est possiblement crypté. alors tu le décryptes et tu relis la première ligne.
- si elle contient alors ton texte spécial, c'est bon - tu as décrypté le fichier.
- sinon, le fichier contient tout à fait autre chose ou a été modifié par un moyen non approprié, et de ce fait, est inutilisable.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Juil 2017 - 20:55

Oui, j' ai trouvé ce palliatif aussi si ce n' est que la ligne marquée 
n' est pas la première mais la dernière.
Laughing
(J' ai fait ainsi pour la concordance entre deux listes  drunken )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 17 Juil 2017 - 22:50

@ Klaus,

Code:
res% = dll_call4("crypter",adr(pwd1$),adr(pwd2$),adr(fichier$),mode%)

Il y a un souci avec cette fonction lorsque mode%=1
A la première utilisation le fichier est encrypté mais...
...à la deuxième aussi. Suspect

Source:
 

Fichier test:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 18 Juil 2017 - 1:15

Bizarre. Et si tu utilises le mode 0 ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

Nombre de messages : 7997
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mar 18 Juil 2017 - 10:04

Mode%=0 fonctionne correctement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pascal10000

avatar

Nombre de messages : 548
Localisation : Troyes
Date d'inscription : 05/02/2011

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 18 Juil 2017 - 15:56

bonjour klaus
il y tjr un problème à la commande "DeclarePanoramicObject"
avec l'aide que tu m'as procuré ça fonctionne
En testant ta démo que tu a posté le 23 juillet, j'ai remarqué qu'il y avait quelque chose qui
cloche. c'est en déplaçant la fenêtre que plus rien ne fonctionne
teste le et tu le verra
A mon avis kgf ne cherche pas à la position dans le form mais bien
dans l'espace du bureau
allez a+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 18 Juil 2017 - 16:40

J'ai vu. Il y a une confusion entre les dimensions extérieures et la zone client de la form 0. Je vais analyser cela.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF_dll - nouvelles versions   Mar 18 Juil 2017 - 17:20

Nouvelle version:
KGF.dll V7.87 du 18/07/2017

Nouveautés:
- FindPanoramicObject: gérer le déplacement de la form 0

Modules modifiés:
KGF.dll

La doc est inchangée. Les sources sont à jour.

Ceci corrige le problème soulevé par pascal10000. Voici le code de Pascal10000, avec une ligne supplémentaire pour déclarer la combo:
Code:
' SurveillerLaSouris_pascal10000.bas

    label tick

    dim x%, y%, res%,Numero%
    dim txt$ : txt$ = string$(100," ")

dll_on "kgf.dll"

    combo 10 : width 10,150
      item_add 10,"Survol avec Panoramic"
      item_add 10,"Survol avec KGF.dll"
      item_select 10,2

        button 21 : top 21,20 : left 21,40

        form  60 : top 60,100 : left 60,350 : width 60,200 : height 60,300

    res% = dll_call2("DeclarePanoramicObject",object_internal(60),60)

    res% = dll_call2("DeclarePanoramicObject",object_internal(10),10)
    res% = dll_call2("DeclarePanoramicObject",object_internal(21),21)
    res% = dll_call2("DeclarePanoramicObject",object_internal(0),0)
 
    timer 99 : timer_interval 99,100 : on_timer 99,tick
end

    tick:
      if item_index(10)=1
        x% = mouse_x_position(0)
        y% = mouse_y_position(0)
      else
'        res% = dll_call3("GetMousePosition",handle(0),adr(x%),adr(y%))
        res% = dll_call2("GetAbsoluteMousePosition",adr(x%),adr(y%))
      end_if
    '  Numero% = dll_call2("FindPanoramicObject",x%,y%)
    '  caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)
      Numero% = dll_call3("FindPanoramicObject",x%,y%,adr(txt$))
      caption 0,str$(x%)+","+str$(y%)+"  objet "+str$(Numero%)+" = "+trim$(txt$)
      return

Cela marche également avec le programme de démo que j'ai publié.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: KGF_dll - nouvelles versions   

Revenir en haut Aller en bas
 
KGF_dll - nouvelles versions
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 14 sur 15Aller à la page : Précédent  1 ... 8 ... 13, 14, 15  Suivant

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: