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
» Planétarium virtuel.
par Jack Hier à 20:59

» ajouter des blancs dans un TXT
par lepetitmarocain Mer 15 Aoû 2018 - 13:00

» 11 (en analyse): commandes sur TAB et SUB_MENU.
par Jack Mar 14 Aoû 2018 - 14:10

» 10 (en analyse): Erreur sur variable locale.
par Jack Mar 14 Aoû 2018 - 14:05

» Métamatière, éternité et renouvellement
par Oscaribout Mar 14 Aoû 2018 - 12:40

» De retour...
par Yannick Lun 13 Aoû 2018 - 15:11

» bug SEVERE fnc+sub : (35)name already defined
par Oscaribout Dim 12 Aoû 2018 - 23:55

» Encadrement
par Jean Claude Dim 12 Aoû 2018 - 11:53

» Des rectangles...
par JL35 Dim 12 Aoû 2018 - 10:53

» TRIGGER_KEY_COMBINED_TOUCH
par Jean Claude Mar 7 Aoû 2018 - 20:58

» ITEM_SELECT N,L pour synedit
par Jean Claude Mar 7 Aoû 2018 - 19:11

» amélioration panoramic
par silverman Dim 5 Aoû 2018 - 18:34

» Commande file_readln.
par Pedro Alvarez Dim 5 Aoû 2018 - 17:08

» Klaus ?
par Jack Sam 4 Aoû 2018 - 22:48

» Défragmentation du disque dur
par JL35 Sam 4 Aoû 2018 - 21:06

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2018
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier

Partagez | 
 

 KGF.dll - demandes ou suggestions de modifications ou ajouts

Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
AuteurMessage
Oscaribout



Nombre de messages : 189
Date d'inscription : 29/12/2016

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Dim 11 Fév 2018 - 12:31

Merci Klaus, je vais essayer celà. Je me retrouve encore avec des problèmes alors que c'était résolu.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5983
Age : 68
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Mar 27 Fév 2018 - 1:26

@Klaus

Dans la documentation de KGF,
Gestion d'un browser basé sur Internet Explorer
Fonction ExecuteJavaScript
Il est écrit comme explication de la fonction :

Citation :
exécuter un code HavaScript

J’ai bien compris qu’il s’agit de JavaScript, rendeer  mais si tu veux bien corriger ce lapsus clavis, ça sera mieux.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Mar 27 Fév 2018 - 2:01

Certes, Papydall ! Je vais corriger me lapsus clavis dans les prochains jours. Pour la version de ce soir, c'est trop tard.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 14:30

Bonjour Klaus !

Sur l'objet LISTBOX, lors de la sélection d'une ligne qu'elle soit en sélection simple ou multiple j'ai un soucis.
Quant je souhaite changé l’icône de la ligne sélectionnée j'ai un décalage.

Je tente de t'expliquer :

1/ je clique sur la première ligne qui change de couleur mais l’icône n'est pas modifiée.
2/ Si je clique sur la ligne ou une autre ligne là l’icône change et apparaît comme souhaité.

En fait ce que je souhaiterai faire c'est pourvoir changer l’icône lors de la sélection et mettre une autre icône lors de la dé-sélection.

Est ce que tu pourrai STP faire une fonction qui retourne un flag pour savoir si la ligne est sélectionné ou pas ?
Un peu comme avec index% qui lui retourne le numéro de ligne.
Merci d'avance Klaus.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 15:18

Bizarrre. J'ai reteste, et la fonction
Code:
res% = dll_call6("OptionsForIconComboBox",ICB%,ele%,ico%,dotrans%,trans%,indent%)
change l'icône avec effet immédiat, que la ligne soit sélectionnée ou pas.

Lors de chaque clic, multi-sélection ou pas, la DLL envoie un USER_EVENT identifiant la ligne cliquée.

Tu as également la fonction suivante:
Code:
nselect% = dll_call2("GetAllSelectedItemsFromIconListBox",ICB%,handle(memo%))
qui te donne dans un mémo, la liste de toutes les lignes sélectionnées:


Et voici le code de ce programme de démo:
Code:
' test_IconComboBox.bas


label creer, supprimer, UserEvent, creerL, supprimerL, selectionL, changeL3, selectL3

dim res%, ICB%, IL%, ILB%, no%, s$, WParam%, LParam%, index%, UserICB%, UserILB%
dim no_DoIcons%, no_DoIndent%, options%, no_memo%, no_Multi% 
dim cFond%    : cFond%  = hex("FFFFFF") : ' blanc
dim cFont%    : cFont%  = hex("000000") : ' noir
dim cSelect%  : cSelect% = hex("FF0000") : ' bleu

' dim ilb$ : ilb$ = "KGF.ilb"
dim ilb$ : ilb$ = "MonTest_32x32.ilb"


dll_on "KGF.dll"
width 0,700

on_user_event UserEvent

no% = no% + 1 : memo no% : no_memo% = no% : hide no% : bar_both no%

no% = no% + 1 : check no% : top no%,10 : no_DoIcons% = no% : caption no%,"Afficher icônes"
no% = no% + 1 : check no% : top no%,10 : left no%,130 : no_DoIndent% = no% : caption no%,"Indentation"
no% = no% + 1 : check no% : top no%,10 : left no%,260 : no_Multi% = no% : caption no%,"Sélection multiple"

no% = no% + 1 : button no% : top no%,40 : caption no%,"Créer" : on_click no%,creer
no% = no% + 1 : button no% : top no%,40 : left no%,width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimer

no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1)+100 : caption no%,"Créer" : on_click no%,creerL
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimerL
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Sélection" : on_click no%,selectionL
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Change ligne 3" : on_click no%,changeL3
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Clic ligne 3" : on_click no%,selectL3

' IL% = dll_call2("CreateImageList",16,16)
IL% = dll_call2("CreateImageList",32,32)
res% = dll_call2("LoadImageList",IL%,adr(ilb$))
end

UserEvent:
  if bin_and(user_event_wparam,hex("FF000000"))=hex("09000000") : ' IconComboBox
    if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return
    index% =  bin_and(user_event_wparam,hex("0000FFFF"))
    UserICB% = user_event_lparam  : ' ici, on a l'identifiant de l'objet ayant généré l'évènement !
    s$ = string$(50," ")
    res% = dll_call3("GetItemOfIconComboBox",ICB%,index%,adr(s$))
    s$ = trim$(s$)
    message "clic dans IconComboBox ligne "+str$(index%)+" = "+s$
    return
  end_if
  if bin_and(user_event_wparam,hex("FF000000"))=hex("0A000000") : ' IconListBox
    if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return
    index% =  bin_and(user_event_wparam,hex("0000FFFF"))
    UserILB% = user_event_lparam  : ' ici, on a l'identifiant de l'objet ayant généré l'évènement !
    s$ = string$(50," ")
    res% = dll_call3("GetItemOfIconListBox",ILB%,index%,adr(s$))
    s$ = trim$(s$)
    message "clic dans IconListBox ligne "+str$(index%)+" = "+s$
    return
  end_if
  return

creer:
  if ICB%<>0 then return
  options% = 0
  if checked(no_DoIcons%)=1 then options% = options% + 1
  if checked(no_DoIndent%)=1 then options% = options% + 2
  ICB% = dll_call3("CreateIconComboBox",handle(0),IL%,options%)
  res% = dll_call5("LocateIconComboBox",ICB%,20,80,200,0)
 
 if 1=2
  transp% = hex("FFFFFF")
  s$ = "Déjeuner"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,1,0,0)
  s$ = "Hors-d'oeuvres"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),4,1,0,1)
  s$ = "Pâté de campagne"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),7,1,0,2)
  s$ = "Radis/Beurre"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),10,1,0,2)
  s$ = "Plats"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),13,1,0,1)
  s$ = "Steak/frites"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),16,1,0,2)
  s$ = "Dîner"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),19,1,0,0)
 else
  s$ = "Déjeuner"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0)
  s$ = "Hors-d'oeuvres"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,1)
  s$ = "Pâté de campagne"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),0,1,0,2)  : ' pas d'icône !
  s$ = "Radis/Beurre"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2)
  s$ = "Plats"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,1)
  s$ = "Steak/frites"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2)
  s$ = "Dîner"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0)
 end_if
 
  res% = dll_call4("SetColorsForIconComboBox",ICB%,cFond%,cFont%,cSelect%)

  return

supprimer:
  ICB% = dll_call1("DeleteIconComboBox",ICB%)
  return


creerL:
  if ILB%<>0 then return
  options% = 0
  if checked(no_DoIcons%)=1 then options% = options% + 1
  if checked(no_DoIndent%)=1 then options% = options% + 2
  ILB% = dll_call3("CreateIconListBox",handle(0),IL%,options%)
  res% = dll_call5("LocateIconListBox",ILB%,240,80,200,300)
   
 if 1=2
  transp% = hex("FFFFFF")
  s$ = "Déjeuner"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,1,0,0)
  s$ = "Hors-d'oeuvres"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),4,1,0,1)
  s$ = "Pâté de campagne"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),7,1,0,2)
  s$ = "Radis/Beurre"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),10,1,0,2)
  s$ = "Plats"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),13,1,0,1)
  s$ = "Steak/frites"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),16,1,0,2)
  s$ = "Dîner"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),19,1,0,0)
 else
  s$ = "Déjeuner"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0)
  s$ = "Hors-d'oeuvres"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,1)
  s$ = "Pâté de campagne"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),0,1,0,2)  : ' pas d'icône !
  s$ = "Radis/Beurre"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2)
  s$ = "Plats"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,1)
  s$ = "Steak/frites"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2)
  s$ = "Dîner"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0)
 end_if

  res% = dll_call4("SetColorsForIconListBox",ILB%,cFond%,cFont%,cSelect%)
  res% = dll_call2("OptionsForIconListBox",ILB%,checked(no_Multi%))
 
  return
 
supprimerL:
  ILB% = dll_call1("DeleteIconListBox",ILB%)
  return

selectionL:
  res% = dll_call2("GetAllSelectedItemsFromIconListBox",ILB%,handle(no_memo%))
  message text$(no_memo%)
  return     
 
changeL3:
  res% = dll_call6("ChangeElementIconInIconListBox",ILB%,3,1,0,0,2)
  s$ = "Oeuf dur - mayonnaise"
  res% = dll_call3("ChangeElementTextInIconListBox",ILB%,3,adr(s$))
 return
 
SelectL3:
  res% = dll_call2("SelectItemOfIconListBox",ILB%,3)
  return

Est-ce que cela résoud ton problème ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 15:26

Merci de te pencher sur mon problème Klaus.

En fait c'est simple.
Je souhaite mettre une icône pour la sélection de la ligne et une autre icône lorsque ce n'est pas sélectionné.
C'est pour cela qu'une fonction qui retourne l'état 0 ou 1 de la ligne sélectionnée serai pratique.

Du style : res%=dll_call2("IsSelectedItemsFromIconListBox",ILB%,index%)

Et res% contiendrai l'état.
A moins qu'il y est un autre moyen simple d'y arriver ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 16:04

Double réponse.

1. Il y avait un oubli de mise à jour de l'affichage de la ligne après un changement de l'icône, si la ligne était sélectionnée. Ceci est corrigé maintenant. En fait, je ne m'en rendais pas compte puisque dans mon programme de démo, la mise à jour de l'icône était suivie immédiatement de la mise à jour du libellé qui, elle, mettait bien à jour l'affichage. Autant pour moi.

2. Ce que tu veux faire, c'est de pouvoir intervenir lorsqu'une ligne est désélectionnée. Le seul moyen que je voie, c'est de mémoriser la liste des éléments sélectionnées (récupérée par GetAllSelectedItemsFromIconListBox lors de la réception d'un USER_EVENT) et de a comparer avec la liste précédente. Pour la ou les lignes sélectionnées précédemment et ne figurant plus dans la nouvelle liste, tu peux intervenit pour changer l'icône.

2. J'ai mis une nouvelle version en line. Maintenant, la fonction GetAllSelectedItemsFromIconListBox retourne, comme avant, la liste des lignes sélectionnées ET en plus, si une ligne a été désélectionnée, la ligne désélectionnée précédé d'un signe "-", comme ceci:


Je pense que ceci résoud ton problème. Il suffit de vérifier si la dernière ligne de ce mémo est précédée d'un "-". Si oui, tu changes son icône.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 17:04

Je viens de mettre à jour la DLL et j'ai mis le code suite en EVENT :

Code:

     IF USER_EVENT_LPARAM=LB_ssp%                                                                                          
         t$=string$(50," ") : res%=dll_call3("GetItemOfIconListBox",LB_ssp%,index%,adr(t$)) : trim$(t$)
         res%=dll_call2("GetAllSelectedItemsFromIconListBox",LB_ssp%,handle(MEM_ssp%))
         t$=LEFT$(ITEM_READ$(MEM_ssp%,COUNT(MEM_ssp%)),1)
                                            
         IF t$="-"  
             res%=dll_call6("SetItemFontAttributesOfIconListBox",LB_ssp%,index%,0,0,0,0)
             res%=dll_call5("SetItemFontColorOfIconListBox",LB_ssp%,index%,0,0,0)
             res%=dll_call6("ChangeElementIconInIconListBox",LB_ssp%,index%,2,0,0,0)
         ELSE
            res%=dll_call6("SetItemFontAttributesOfIconListBox",LB_ssp%,index%,0,1,0,0)
            res%=dll_call5("SetItemFontColorOfIconListBox",LB_ssp%,index%,255,255,255)
            res%=dll_call6("ChangeElementIconInIconListBox",LB_ssp%,index%,1,0,0,0)
         END_IF
    END_IF  

Mais j'ai encore un problème bizarrement avec les sélections (ligne 7, 21, 29 et 30 sur la capture ci-dessous).
J'ai essayé de mettre des PAUSE 200 entre lignes sans résultat.
Et j'ai essayé aussi le OFF_USER_EVENT sans résultat non plus.
Aurai tu une autre idée ?

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 17:14

Ce qui est vraiment bizarre c'est que je ne peut pas sélectionner les 2 dernières ligne 29 et 30. même en le faisant plusieurs fois c'est impossible.  Suspect

J'obtiens toujours le même résultat :
l'icone sélectionné est bien la bonne mais le texte n'est pas sélectionné correctement !

EDIT :
Je suis passé à un affichage de 50 items et toujours le problème avec les 2 derniers. C'est à dire le num 49 et 50.
J'ai vérifié le retour de la variable index% et c'est OK même avec 49 et 50.

Je crois qu'il y a un soucis avec les fonctions :
res% = dll_call5("SetItemFontColor"InIconListBox,ILB%,item%,,R%,G%,B%)
res% = dll_call6("SetItemFontAttributesInIconListBox",ILB%,item%,B%,I%,U%,S%)


J'ai constaté aussi que les options de texte B%,I%,U%,S% ne sont pas dans le bon ordre.
Il faudrait que tu regarde aussi pour la fonction :
ChangeElementIconInIconComboBox car l'exemple ne correspond pas !

Et pour terminer il y a toujours la fonction suivante dans la liste de COMBOBOX :
res% = dll_call2("OptionsForIconComboBox",ICB%,multi%)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 17:57

J'allais oublier...

Comme il y a une fonction : res%=dll_call2("SelectItemOfIconComboBox",LB%,n%)
serai-t-il possible d'avoir : res%=dll_call2("UnselectItemOfIconComboBox",LB%,n%)
pour désélectionné une ligne.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 18:51

Je vais regarder tout cela tranquillement, ce soir. Ces retours sont précieux !

Citation :
Et pour terminer il y a toujours la fonction suivante dans la liste de COMBOBOX :
res% = dll_call2("OptionsForIconComboBox",ICB%,multi%)
Oui. J'ai corrigé dans le source du fichier CHM ici, mais comme je suis en train de faire de grosses modifications, suite aux multiples rajouts de ces derniers jours, je ne l'ai pas encore distribué.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 21:38

Rapport d'étape:

1 J'ai corrigé SelectItemOfIconComboBox et UnselectItemOfIconComboBox. Il y avait d'ailleurs le même problème dans d'autres fonctions - j'ai corrigé partout. Maintenant, les deux dernières lignes ne posent plus de problème.

2. J'ai modifié SelectItemOfIconComboBox, et d'ailleurs également SelectItemOfIconListBox, de sorte que le paramètre index% passé comme 0 (zéro) annule la ou les sélections, quelles qu'elles soient.

Pourrais-tu essayer pour voir si tu constates une amélioration ? S'il y a encore d'autres problèmes, je continuerai.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 22:00

J'ai testé et voici le rapport ! Laughing

1/
Maintenant les 2 derniers items sont cliquables correctement.

2/
Concernant la fonction res%=dll_call2("SelectItemOfIconListBox",LB_ssp%,0). Ça marche bien aussi.

3/
Par contre pour res%=dll_call2("UnselectItemOfIconListBox",LB_ssp%,n%)
j'ai le message expression arithmerique incorrecte : Erreur dans une fonction à la ligne ...

J'aimerai bien avoir cette fonction car elle me permet de désélectionnée la ligne n% uniquement.
En résumé même principe que le point 2 mais pour la seule ligne n%.

Possibilité que je n'ai pas autrement ou alors j'ai zappé quelque chose. Wink

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 22:16

Citation :
Par contre pour res%=dll_call2("UnselectItemOfIconListBox",LB_ssp%,n%)
j'ai le message expression arithmerique incorrecte : Erreur dans une fonction à la ligne ...
Oui, tu as zappé quelque chose. J'ai dit:
Citation :
2. J'ai modifié SelectItemOfIconComboBox, et d'ailleurs également SelectItemOfIconListBox, de sorte que le paramètre index% passé comme 0 (zéro) annule la ou les sélections, quelles qu'elles soient.
Donc, il n'y a pas de nouvelle fonction - tu passes simplement zéro comme indice, à la fonction.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 22:22

Oui j'ai bien compris sauf que ça annule toutes les sélections et pas seulement une seule.

C'est pourquoi je te demande cette fonction pour annuler une seule ligne !
Si cela est possible bien sûr sinon je vais me débrouiller... Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 22:26

Ah, j'avais pas compris ! Je vais voir ça tout de suite !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 22:37

Bon, j'ai modifié la fonction SelectItemOfIconComboBox comme suit:
- index%>0 ==> sélection de la ligne index% si elle n'était pas sélectionnée
- index%=0 ==> désélection de toutes les sélections
- index%<0 ==> désélection de la ligne index% si elle était sélectionnée

Si abs(index)>nombre de lignes alors ereur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 22:41

Ok merci Klaus je vais tester.

Dois moi y a-t-il une manière de savoir combien de ligne sont enregistrées dans la LISTBOX ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 22:45

Lors d'un ajout de ligne, la fonction AddItemToIconListBox retourne le nombre de lignes présentes dans la IcinListBox, après ajout.

EDIT

Il suffit donc de faire
Code:
NombreElements% = dll_callx("AddItemToIconListBox",...)
pour avoiur toujours ce nombre sous la main.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Ven 20 Avr 2018 - 23:28

Ah OK pas mal cette idée ! Je viens de tester et ça c'est bon.

Par contre j'ai un soucis avec SelectItemOfIconListBox et je dis bien ListBox et pas ComboBox !


Comme je ne souhaite pas sélectionner plus de 9 lignes en même temps, j'ai ajouté la ligne suivante
dans le sous-programme EVEN qui réagit à la 10eme sélection :

IF COUNT(MEM_ssp%)>9 THEN res%=dll_call2("SelectItemOfIconListBox",LB_ssp%,index%) : RETURN

MEM_ssp% est le MEMO receveur.

Mais ça part en boucle : La ligne se met à cliqgnoter (un coup sélect, un coup déselect...)
et ensuite plantage. J'ai encore loupé quelque chose ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Sam 21 Avr 2018 - 0:33

Tu as certainement placé cette ligne dans le traitement du USER_EVENT, n'est-ce pas ? Eh oui, dans ce cas, c'est normal, car la sélection par cette fonction équivaut à un clic sur une ligne qui génère un USER_EVENT qui refait une sélection etc.

Non. Ce n'est pas la bonne solution. Tu peux essayer ceci: si le nombre est plus grand que ton maximum, alors désélectionne le dernier sélectionné en appelant la fonction avec le même index, mais négatif.

Sinon, je ne vois qu'une seule solution: je vais installer une limite maximale du nombre de lignes sélectonnées (défaut: aucune limite), avec une nouvelle fonction permettant d'imposer cette valeur. Quest-ce que tu en dis ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Sam 21 Avr 2018 - 0:39

Citation :
désélectionne le dernier sélectionné en appelant la fonction avec le même index, mais négatif.
J'ai testé mais c'est sans résultat. Cela ne fonctionne pas !

Citation :
Sinon, je ne vois qu'une seule solution: je vais installer une limite maximale du nombre de lignes sélectonnées (défaut: aucune limite), avec une nouvelle fonction permettant d'imposer cette valeur. Quest-ce que tu en dis ?
Si cela ne te déranges pas, je veux bien. Merci.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Sam 21 Avr 2018 - 1:13

C'est fait... Tu as maintenant la fonction
Code:
LimitePrecedente% = dll_call2("SetMultiSelectionLimit",ILB%,limite%)
La fonction impose une limite aux sélections multiples et retourne la valeur précédente de cette limite.
Une valeur de zéro pour le paramètre limite% désactive la limitation.

Tu peux constater l'effet dans le programme de démo, en choisissant une limite dans le SPIN en haut à droite, avant le clic sur le bouton de création.
Code:
' test_IconComboBox.bas


label creer, supprimer, UserEvent, creerL, supprimerL, selectionL, changeL3, selectL3

dim res%, ICB%, IL%, ILB%, no%, s$, WParam%, LParam%, index%, UserICB%, UserILB%
dim no_DoIcons%, no_DoIndent%, options%, no_memo%, no_Multi%, no_Limite% 
dim cFond%    : cFond%  = hex("FFFFFF") : ' blanc
dim cFont%    : cFont%  = hex("000000") : ' noir
dim cSelect%  : cSelect% = hex("FF0000") : ' bleu

' dim ilb$ : ilb$ = "KGF.ilb"
dim ilb$ : ilb$ = "MonTest_32x32.ilb"


dll_on "KGF.dll"
width 0,700

on_user_event UserEvent

no% = no% + 1 : memo no% : no_memo% = no% : hide no% : bar_both no%

no% = no% + 1 : check no% : top no%,10 : no_DoIcons% = no% : caption no%,"Afficher icônes"
no% = no% + 1 : check no% : top no%,10 : left no%,130 : no_DoIndent% = no% : caption no%,"Indentation"
no% = no% + 1 : check no% : top no%,10 : left no%,260 : no_Multi% = no% : width no%,120 : caption no%,"Sélection multiple"
no% = no% + 1 : alpha no% : top no%,10 : left no%,390 : caption no%,"Limite de sélection:"
no% = no% + 1 : spin no% : top no%,10 : left no%,490 : no_Limite% = no% : width no%,60 : min no%,0

no% = no% + 1 : button no% : top no%,40 : caption no%,"Créer" : on_click no%,creer
no% = no% + 1 : button no% : top no%,40 : left no%,width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimer

no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1)+100 : caption no%,"Créer" : on_click no%,creerL
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Supprimer" : on_click no%,supprimerL
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Sélection" : on_click no%,selectionL
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Change ligne 3" : on_click no%,changeL3
no% = no% + 1 : button no% : top no%,40 : left no%,left(no%-1)+width(no%-1) : caption no%,"Clic ligne 3" : on_click no%,selectL3

' IL% = dll_call2("CreateImageList",16,16)
IL% = dll_call2("CreateImageList",32,32)
res% = dll_call2("LoadImageList",IL%,adr(ilb$))
end

UserEvent:
  if bin_and(user_event_wparam,hex("FF000000"))=hex("09000000") : ' IconComboBox
    if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return
    index% =  bin_and(user_event_wparam,hex("0000FFFF"))
    UserICB% = user_event_lparam  : ' ici, on a l'identifiant de l'objet ayant généré l'évènement !
    s$ = string$(50," ")
    res% = dll_call3("GetItemOfIconComboBox",ICB%,index%,adr(s$))
    s$ = trim$(s$)
    message "clic dans IconComboBox ligne "+str$(index%)+" = "+s$
    return
  end_if
  if bin_and(user_event_wparam,hex("FF000000"))=hex("0A000000") : ' IconListBox
    if bin_and(user_event_wparam,hex("00FF0000"))<>hex("00010000") then return
    index% =  bin_and(user_event_wparam,hex("0000FFFF"))
    UserILB% = user_event_lparam  : ' ici, on a l'identifiant de l'objet ayant généré l'évènement !
    s$ = string$(50," ")
    res% = dll_call3("GetItemOfIconListBox",ILB%,index%,adr(s$))
    s$ = trim$(s$)
    message "clic dans IconListBox ligne "+str$(index%)+" = "+s$
    return
  end_if
  return

creer:
  if ICB%<>0 then return
  options% = 0
  if checked(no_DoIcons%)=1 then options% = options% + 1
  if checked(no_DoIndent%)=1 then options% = options% + 2
  ICB% = dll_call3("CreateIconComboBox",handle(0),IL%,options%)
  res% = dll_call5("LocateIconComboBox",ICB%,20,80,200,0)
 
 if 1=2
  transp% = hex("FFFFFF")
  s$ = "Déjeuner"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,1,0,0)
  s$ = "Hors-d'oeuvres"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),4,1,0,1)
  s$ = "Pâté de campagne"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),7,1,0,2)
  s$ = "Radis/Beurre"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),10,1,0,2)
  s$ = "Plats"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),13,1,0,1)
  s$ = "Steak/frites"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),16,1,0,2)
  s$ = "Dîner"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),19,1,0,0)
 else
  s$ = "Déjeuner"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0)
  s$ = "Hors-d'oeuvres"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,1)
  s$ = "Pâté de campagne"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),0,1,0,2)  : ' pas d'icône !
  s$ = "Radis/Beurre"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2)
  s$ = "Plats"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,1)
  s$ = "Steak/frites"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),1,0,0,2)
  s$ = "Dîner"
  res% = dll_call6("AddItemToIconComboBox",ICB%,adr(s$),2,1,0,0)
 end_if
 
  res% = dll_call4("SetColorsForIconComboBox",ICB%,cFond%,cFont%,cSelect%)

  return

supprimer:
  ICB% = dll_call1("DeleteIconComboBox",ICB%)
  return


creerL:
  if ILB%<>0 then return
  options% = 0
  if checked(no_DoIcons%)=1 then options% = options% + 1
  if checked(no_DoIndent%)=1 then options% = options% + 2
  ILB% = dll_call3("CreateIconListBox",handle(0),IL%,options%)
  res% = dll_call5("LocateIconListBox",ILB%,240,80,200,300)
  res% = dll_call2("SetMultiSelectionLimit",ILB%,position(no_Limite%))
   
 if 1=2
  transp% = hex("FFFFFF")
  s$ = "Déjeuner"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,1,0,0)
  s$ = "Hors-d'oeuvres"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),4,1,0,1)
  s$ = "Pâté de campagne"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),7,1,0,2)
  s$ = "Radis/Beurre"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),10,1,0,2)
  s$ = "Plats"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),13,1,0,1)
  s$ = "Steak/frites"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),16,1,0,2)
  s$ = "Dîner"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),19,1,0,0)
 else
  s$ = "Déjeuner"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0)
  s$ = "Hors-d'oeuvres"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,1)
  s$ = "Pâté de campagne"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),0,1,0,2)  : ' pas d'icône !
  s$ = "Radis/Beurre"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2)
  s$ = "Plats"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,1)
  s$ = "Steak/frites"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),1,0,0,2)
  s$ = "Dîner"
  res% = dll_call6("AddItemToIconListBox",ILB%,adr(s$),2,1,0,0)
 end_if

  res% = dll_call4("SetColorsForIconListBox",ILB%,cFond%,cFont%,cSelect%)
  res% = dll_call2("OptionsForIconListBox",ILB%,checked(no_Multi%))
 
  return
 
supprimerL:
  ILB% = dll_call1("DeleteIconListBox",ILB%)
  return

selectionL:
  res% = dll_call2("GetAllSelectedItemsFromIconListBox",ILB%,handle(no_memo%))
  message text$(no_memo%)
  return     
 
changeL3:
  res% = dll_call6("ChangeElementIconInIconListBox",ILB%,3,1,0,0,2)
  s$ = "Oeuf dur - mayonnaise"
  res% = dll_call3("ChangeElementTextInIconListBox",ILB%,3,adr(s$))
 return
 
SelectL3:
  res% = dll_call2("SelectItemOfIconListBox",ILB%,3)
  return

Bien entendu, tuy peux utiliser cette fonction n'importe quand, après la création de l'objet. Son action prendra effet immédiatement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Minibug

avatar

Nombre de messages : 2996
Age : 51
Localisation : Vienne (86)
Date d'inscription : 09/02/2012

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Sam 21 Avr 2018 - 1:37

Merci Klaus, c'est tout a fait ça ! cheers 

Par contre, en cliquant de manière rapide (Bourrin est passé par là ! Laughing ), j'ai réussi à passer la barrière.
AU départ j'ai sélectionné de 2 à 10 normalement et ensuite en forçant un peu...
Crois tu pouvoir contrer cela ?

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://gpp.panoramic.free.fr
Klaus

avatar

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

MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   Sam 21 Avr 2018 - 1:42

Ah oui - j'ai vu. J'y travaille...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: KGF.dll - demandes ou suggestions de modifications ou ajouts   

Revenir en haut Aller en bas
 
KGF.dll - demandes ou suggestions de modifications ou ajouts
Revenir en haut 
Page 4 sur 5Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
 Sujets similaires
-
» conseiller du vin---suggestions
» quelques ajouts
» ? DEVENIR COPAINS. (demandes de partenariat)
» ? LES DEMANDES DE PARTENARIAT
» Liste de liens

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: