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
» Gestionnaire de Projets Panoramic
par Minibug Aujourd'hui à 2:10

» Mah-Jong européen new-look
par jjn4 Hier à 16:35

» Button_picture
par pascal10000 Hier à 11:41

» Pourquoi le compilateur stagne
par Minibug Hier à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Hier à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Hier à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Hier à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Mer 13 Déc 2017 - 17:27

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 KGF.dll Bug ou pas ?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Yannick

avatar

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

MessageSujet: KGF.dll Bug ou pas ?   Mer 14 Juin 2017 - 13:02

@ Klaus,

Pour remplacer la fonction EXECUTE de Panoramic qui bug en ce moment,
j' ai voulu utiliser celle de KGF et j' ai créer cette sub :
Code:
sub LanceOutils()
   dim_local res%,path$,param$,folder$
      
   path$   = "C:\Users\Yannick\Desktop\Outils_Couleurs\PanoColorSelect.exe"
   param$  = str$(Handle_form("Exemple d utilisation de Outils Couleurs"))
   folder$ = ""
   res% = DLL_call4("ExecuteProgram",adr(path$),adr(param$),adr(folder$),0)
   if res%<0
      message "Echec du lancement !"
   end_if  
end_sub

mais j' ai toujours le message d' échec... Sad
Aurai je raté quelque chose ou il y a un problème avec la fonction ?

edit : 
Il en est de même pour
res% = DLL_call3("ExecuteProgramAndWait",adr(path$),adr(param$),adr(folder$))
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF.dll Bug ou pas ?   Mer 14 Juin 2017 - 13:55

Il y avait deux points à corriger, dans ma fonction:
1. le "paramètre" était supposé être un nom de fichier. La fonctioin en déduisait implicitement le nom court, et pan ! ça ne marche pas évidemment pour un paramètre numérique ! Ceci est corrigé.
2. il y a un gros problème avec Panoramic et des chaînes de caractères encadrées par des guillemets. Il faudrait entourer le chemin vers le fichier EXE par des guillemets, mais je n'ai trouvé aucun moyen de le faire. J'ai donc ajouté cela à la fonction DLL pour ajouter ces guillemets systématiquement.

D'ailleurs, Jack, si tu nous lis, ce dernier point est vraiment un handicap. Panoramic "interprète" le contenu d'une chaîne de caractères, au moment de son affectation dans une autre, en éliminant les guillemets extérieurs. Même de double guillemets extérieurs ! Exemple:


Code:
dim s$, c$
c$ = chr$(34)
s$ = c$+"Ceci est mon texte"+c$


s$ ne contiendra aucun guillemet. Si tu ne peux pas modifier cela, pourrais-tu créer une fonction du type


Code:
s$ = QuotedString(s$,c$)


avec c$ étant le caractère à ajouter devant et derrière s$ ?


Pour en revenir à ton problème, Yannick:
J'ai testé avec le code suivant:
Code:
 caption 0,"Exemple d utilisation de Outils Couleurs"
  dim res%,path$,param$,folder$, c$
  c$ = chr$(34)
    
  dll_on "KGF.dll"
  open_dialog 1
  path$ = file_name$(1)
  if path$="_" then terminate
  
  param$  = str$(Handle_form("Exemple d utilisation de Outils Couleurs"))
  folder$ = ""
  res% = DLL_call4("ExecuteProgram",adr(path$),adr(param$),adr(folder$),0)
  if res%<0
      message "Echec du lancement !"
  end_if
Comme les deux points ci-dessus sont gérés dans ma DLL, le programme appelé est lancé correctement. Mais il y a toujours ce message au démarrage du programme, qui tente de lancer un autre programme dont le nom serait composé du nom du programme lui-même et du paramètre... On valide ce message, et le programme s'exécute normalement. Recharge la nouvelle version de KGF.dll.

Ceci est toujours le même bug dans l'interpréteur de Panoramic, présent et signalé depuis un bon moment, par moi et d'autres. Faudra bien un jour ou l'autre que Jack corrige cela, même si je sais bien qu'en ce moment, il n'est pas en mesure de le faire.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 14 Juin 2017 - 14:37

Ton petit programme fonctionne, j' ai du raté quelque chose dans ma sub Wink .
Mais, malheureusement, il n' empêche pas le bug panoramic des paramètres etc...
J' ai aussi droit au message du fichier introuvable avec le paramètre en nom de fichier. Mad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Mer 14 Juin 2017 - 14:43

Ce qui est curieux c' est que ton file_name$(1) renvoie la même chose que ce que j' ai mis dans la variable path$. 
ma variable path$ bug et pas la tienne.... Suspect
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF.dll Bug ou pas ?   Mer 14 Juin 2017 - 15:45

Qu'est-ce que tu veux que je dise... charge le résultat de FILE_NAME$ dans une autre variable et compare les deux - visuellement et par programme. Il doit y avoir une différence.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 14 Juin 2017 - 17:09

Embarassed  c' est un peu ma faute, j' utilisais la fonction ExecuteProgramAndWait
qui elle n' a apparemment pas été modifié.
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF.dll Bug ou pas ?   Mer 14 Juin 2017 - 20:08

Oups... je vais y remédier !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mar 11 Juil 2017 - 16:05

J'ai un souci avec TreeView et l' affichage des icônes.

Pour être sûr de mon fait, je crée un imagelist avec 4 icônes *.bmp au format 16x16 que je sauvegarde 
avant de créer le treeview.
( donc 4 fichiers bmp de ton cru feront l' affaire pour tester.)

Pendant la création, je les extrait dans bmp2$ pour visualiser les images enregistrées dans un button_picture.

Mais voilà, pas tout ce passe comme je le voudrai.
Voilà le code, tes yeux verraient ils une erreur de ma part ? ou il y a un souci avec Kgf ?

Code:
dim It$
dim txt$

dim kgf$ : kgf$ = "C:\KGF\KGF.dll"
dim dir$ : dir$ = "C:\Users\Yannick\Desktop\PanoramicTools\Outils\"
dim fic$ : fic$ = "C:\Users\Yannick\Desktop\PanoramicTools\ico.ilb"

dim res%
dim IL%
dim TV%

label change

dll_on kgf$

height 0,400
width 0,350
top 0,100
left 0,100

font_name 0,"Arial"
font_size 0,8
font_bold 0

caption 0,"Pano Toolbox"

edit 1 : hide 1 : on_change 1,change

button_picture 2
height 2,24
width 2,24
top 2,height_client(0)-24
left 2,0

CreateImageList()

TV% = dll_call3("CreateTreeViewEx",handle(0),1,adr(fic$))
res% = dll_call3("SetTreeViewEventReceiver",TV%,1,handle(1))
res% = dll_call5("ResizeTreeView",TV%,0,0,width_client(0),height_client(0)-24)

dir_change dir$
res% = dll_call4("AddTreeViewRootNode",TV%,adr(dir$),0,0)
res% = dll_call4("SetTreeViewOptions",TV%,1,7,0)
res% = dll_call4("SetTreeViewOptions",TV%,1,8,1)

it$ = file_find_first$
if instr(it$,chr$(46))=0
  txt$ = "Outils"
  res% = dll_call3("SelectTreeViewNode",TV%,0,0)
  res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),0,1)
end_if
it$ = file_find_next$
while it$<>"_"
  if instr(it$,chr$(46))=0
      txt$ = "Outils"
      res% = dll_call3("SelectTreeViewNode",TV%,0,0)
      res% = dll_call4("AddTreeViewChildNode",TV%,adr(txt$),0,1)
  end_if
  it$ = file_find_next$
end_while
file_find_close
end
' ------------------------------------------------------------------------------
change: 
  if left$(text$(1),instr(text$(1),chr$(44))-1) = "double_click"
      message text$(1)
  end_if
return
' ------------------------------------------------------------------------------
sub CreateImageList()
  dim_local i%,bmp$,bmp2$
  bmp2$ = "C:\Users\Yannick\Desktop\PanoramicTools\But.bmp"
 
  IL% = dll_call2("CreateImageList",16,16)

  for i%=0 to 3
      bmp$ = "C:\Users\Yannick\Desktop\PanoramicTools\B00"+str$(i%+1)+".bmp"
      res% = dll_call4("AddImageToImageList",IL%,adr(bmp$),0,0)     
      if res%<>0
        message "Echec !"+chr$(13)+"Création de l' imagelist a échoué."
        exit_sub
      else
        res% = dll_call5("ExtractImageFromImageList",IL%,i%,0,0,adr(bmp2$))
        file_load 2,bmp2$     
      end_if
  next i%

  res% = dll_call2("SaveImageList",IL%,adr(fic$))
  if res%<>0
      message "Echec !"+chr$(13)+"Création de l' imagelist a échoué."
      exit_sub
  end_if
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF.dll Bug ou pas ?   Mar 11 Juil 2017 - 22:35

Je n'arrive pas à bien comprendre le but poursuivi par ton programme.

Déjà, pour commencer, dans la SUB CreateImageList, tu crées une ImageList (ok), tu y charges 4 images (ok), et immédiatement après le chargement de chaque image, tu l'extraits dans un fichier toujours du même nom pour ensuite charger ce fichier dans toujours le même objet picture 2. A quoi ça sert ?

Ensuite, je ne comprends pas bien ta boucle de recherche de fichier dans un dossier. Le principe est le suivant:
Code:
it$ = file_find_first$
while it$<>"_"
  if left$(it$,1)<>"."
    ' ici, un a un candidat possible pour nom de fichier
    if dir_exists(it$)=0
      ' ici, c'est vraiment un fichier, pas un dossier
      ' donc traiter de fichier ici...
    end_if
  end_if
end_while
file_find_close

Si tu as un problème avec une fonction DLL en particulier, essaie de faire un petit code mettant en oeuvre juste cette erreur. Sinon, c'est vraiment très complexe à trouver, surtout si on a juste l'indication "ça ne marche pas", sans savoir ce qui cloche, dans quelles conditions, pour quelles fonctions... enfin, tu n'es pas un novice et tu sais de quoi je parle.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Yannick

avatar

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

MessageSujet: re   Mer 12 Juil 2017 - 10:39

Autant pour moi... Embarassed

Mon erreur vient du fait que dans presque tous les cas d' utilisation d'une imagelist on utilise
le numéro d' indice de l' image à utiliser donc en partant de 0 jusqu' à ...
Or, pour le treeview on part de 1, 0 signifie pas d' image. 

J' ai fait des noeuds et pourtant ce n' est pas la première fois que je me sers de cet objet. 
Embarassed
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

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

MessageSujet: re   Mer 12 Juil 2017 - 18:11

Klaus,

Je m' aperçois que le souci vient des fonctions d' imagelist.
L' imagelist est créé, il contient bien des images mais elles sont vides (blanches).
Sad
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

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

MessageSujet: Re: KGF.dll Bug ou pas ?   Mer 12 Juil 2017 - 18:43

Alors, es-tu sûr que tes 4 images sont bien en format 16x16 pixels ? Je ne vois rien qui puisse se passer mal, sinon...
Essaie avec
Code:
...
      for i%=0 to 3
          bmp$ = "C:\Users\Yannick\Desktop\PanoramicTools\B00"+str$(i%+1)+".bmp"
          res% = dll_call4("AddImageToImageList",IL%,adr(bmp$),1,0) 
...
Je sais, le noir sera pris comme couleur de transparence. C'est juste pour observer le résultat... Pour ma part, je me sers de cette fonction en permanence et tout semble marcher.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: KGF.dll Bug ou pas ?   

Revenir en haut Aller en bas
 
KGF.dll Bug ou pas ?
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

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: