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

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
[Résolu] Soucis IconListBox de KGF - Page 3 Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
SSD interne Crucial BX500 2,5″ SATA – 500 ...
Voir le deal
29.99 €

 

 [Résolu] Soucis IconListBox de KGF

Aller en bas 
3 participants
Aller à la page : Précédent  1, 2, 3
AuteurMessage
Klaus

Klaus


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

[Résolu] Soucis IconListBox de KGF - Page 3 Empty
MessageSujet: Re: [Résolu] Soucis IconListBox de KGF   [Résolu] Soucis IconListBox de KGF - Page 3 EmptyMar 3 Nov 2020 - 12:49

Normalement, il suffit de placer
Code:
res% = dll_call1("UnblockIconListBox",LB_ssp%)
juste avant le RETURN de ta routine USER_EVENT. LB_ssp est l'identifiant de ta IconListBox.

Je teste avec ceci (ça vient de chez toi):
Code:
' test_Minibug_IconListBox.bas

label UserEvent

dim res%, no%, PAN_menu%(10), for%(10), t$, CONT_ssp%, IL%, chemin$, LB_ssp%
dim txt$, i%, cnt%, index%, LP%, WP%

for%(0) = 0
no% = 17
chemin$ = ""
cnt% = 0
full_space 0

dll_on "KGF.dll"
on_user_event UserEvent

      PANEL no% : HIDE no% : PARENT no%,FOR%(0) : TOP no%,52 : COLOR no%,60,60,60 : show no%                                                : ' Création du MENU OBJETS dans la fenetre principale
        WIDTH no%,WIDTH_CLIENT(FOR%(0))-1 : HEIGHT no%,HEIGHT_CLIENT(FOR%(0))-52 : PAN_menu%(3)=no% : no%=no%+1                  : '     

        CONTAINER no% : PARENT no%,PAN_menu%(3) : LEFT no%,8 : TOP no%,2 : WIDTH no%,257 : HEIGHT no%,572                        : ' Positionnement des CONTAINERS d'affichage des SSP
            COLOR no%,60,60,60 : FONT_COLOR no%,230,230,230  : FONT_NAME no%,"Segoe UI" : FONT_SIZE no%,12                        : ' Mep couleur, police, taille et titre des CONTAINERs
            ' datas()
            t$="  "+t$+"  "                                                                                              : ' Lecture des informations CONTAINERs et HINTs
            CAPTION no%,t$ : CONT_ssp%=no% : no%=no%+1
                                                                       
            '  --------------- CREATION DE L'IMAGELIST ---------------
            IL%=DLL_CALL2("CreateImageList",15,15)                                                                                : '
'            t$=chemin$+"\ilb\gestssp.ilb"                                                                                          : '                                   
            t$=chemin$+"KGF.ilb"                                                                                          : '                                   
            res%=DLL_CALL2("LoadImageList",IL%,adr(t$))                                                                            : '
 
            ' --------------- CREATION DU LISTBOX (liste des sous-programmes) ----------------
            res%=dll_call1("SetMainFormHandle",handle(0))                                                                          : '
            LB_ssp%=DLL_CALL3("CreateIconListBox",handle(CONT_ssp%),IL%,1)                                                        : '
                                                                                                                               
            t$="Segoe UI" : res%=DLL_CALL3("SetDefaultFontOfIconListBox",LB_ssp%,ADR(t$),10)                                      : '
            res%=DLL_CALL5("LocateIconListBox",LB_ssp%,5,20,(WIDTH_CLIENT(CONT_ssp%)-10),(HEIGHT_CLIENT(CONT_ssp%)-25))            : '
            res%=dll_call2("OptionsForIconListBox",LB_ssp%,1)                                                                      : '
            res%=dll_call2("SetMultiSelectionLimitOfIconListBox",LB_ssp%,9)                                                        : '
            res%=dll_call4("SetColorsForIconListBox",LB_ssp%,HEX("909090"),HEX("000000"),HEX("000090")) 
           
for i%=1 to 20           
  txt$ = "aaaaaaaaaaaaaaaa "+str$(i%)           
  res% = dll_call6("AddItemToIconListBox",LB_ssp%,adr(txt$),17, 17, 18, 0)
next i%
             
end       

UserEvent:
  LP% = user_event_lparam
  WP% = user_event_wparam
  if bin_and(WP%,hex("FF000000"))=hex("0A000000")  : ' un IconListBox ?
    if bin_and(WP%,hex("00FF0000"))<>hex("00010000") then return  : ' pas un clic dans une ligne ?
    if LP%<>LB_ssp% then return                                                          : ' pas le ICB attendu ?
    index% =  bin_and(WP%,hex("0000FFFF"))
   
    off_user_event        : ' *********** désactiver les USER_EVENT en cas de longs traitements
   
    cnt% = cnt% + 1
    caption 0,"Click no "+str$(cnt%)+" dans ligne "+str$(index%)                                : ' récupérer le numéro de la ligne cliquée
   
    res% = dll_call1("UnblockIconListBox",LB_ssp%)
    on_user_event UserEvent    : ' *********** résactiver les USER_EVENT
   
    return
  end_if 
  return
                                                                              : '
                                  :

Là, tu peux cliquer comme tu veux - tout marche bien.

Maintenant, je n'ai pas franchement la disponibilité pour installer GPP, en comprendre le fonctionnement et tester en grandeur nature. Tu peux cependant faire la chose suivante: dans ta routine USER_EVENT, tu peux désactiver l'essentiel du traitement en ne gardant que le squelette (désactiver tout ce qui est après le OFF_USER_EVENT et avant l'appel de la fonction UnblockIconListBox) en insérant trois lignes, à l'image de dl'example ci-dessous
Code:
UserEvent:
  LP% = user_event_lparam
  WP% = user_event_wparam
  if bin_and(WP%,hex("FF000000"))=hex("0A000000")  : ' un IconListBox ?
    if bin_and(WP%,hex("00FF0000"))<>hex("00010000") then return  : ' pas un clic dans une ligne ?
    if LP%<>LB_ssp% then return                                                          : ' pas le ICB attendu ?
    index% =  bin_and(WP%,hex("0000FFFF"))
   
    off_user_event        : ' *********** désactiver les USER_EVENT en cas de longs traitements
if 1=2    : ' ####################### pour désactiver la suite
    cnt% = cnt% + 1
    caption 0,"Click no "+str$(cnt%)+" dans ligne "+str$(index%)                                : ' récupérer le numéro de la ligne cliquée
end_if    : ' ####################### fin de la désactivation
pause 500    : ' ##################### simuler un traitement d'une certaine longueur...
    res% = dll_call1("UnblockIconListBox",LB_ssp%)
    on_user_event UserEvent    : ' *********** résactiver les USER_EVENT
   
    return
  end_if 
  return


Là, s'il y a encore un problème d'affichage, ce sea alors lié à la DLL. Sinon, il faudrait voir dans ton code...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

[Résolu] Soucis IconListBox de KGF - Page 3 Empty
MessageSujet: Re: [Résolu] Soucis IconListBox de KGF   [Résolu] Soucis IconListBox de KGF - Page 3 EmptyMar 3 Nov 2020 - 12:53

Ok Klaus,

je regarde ça tout à l'heure.
Là je dois repartir...
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

[Résolu] Soucis IconListBox de KGF - Page 3 Empty
MessageSujet: Re: [Résolu] Soucis IconListBox de KGF   [Résolu] Soucis IconListBox de KGF - Page 3 EmptyMar 3 Nov 2020 - 13:11

Moi aussi. La tournée des médecins...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

[Résolu] Soucis IconListBox de KGF - Page 3 Empty
MessageSujet: Re: [Résolu] Soucis IconListBox de KGF   [Résolu] Soucis IconListBox de KGF - Page 3 EmptyMar 3 Nov 2020 - 17:26

Ok Klaus, ton test est plutôt concluant chez moi...

Le problème  c'est que je rajoute un traitement quand une ligne est sélectionnée :

res%=dll_call5("SetItemFontColorOfIconListBox",LB_ssp%,index%,255,255,255)                                                      res%=dll_call6("SetItemFontAttributesOfIconListBox",LB_ssp%,index%,1,0,0,0)
res%=dll_call6("ChangeElementIconInIconListBox",LB_ssp%,index%,1,0,0,0)  

Et quand une ligne est désélectionnée :

res%=dll_call5("SetItemFontColorOfIconListBox",LB_ssp%,index%,0,0,0)
res%=dll_call6("SetItemFontAttributesOfIconListBox",LB_ssp%,index%,0,0,0,0)
res%=dll_call6("ChangeElementIconInIconListBox",LB_ssp%,index%,2,0,0,0)

Et j'ai bien l'impression que c'est dans ce cas de figure qu'il y a un soucis.

En plus j'ai essayé de rajouter ces lignes dans ton exemple (repris de mon code).
Mais j'ai un décalage dans le traitement ?!

Du coup je n'ai pas pu tester.

Voici le code avec mes rajouts :

Code:


' test_Minibug_IconListBox.bas

label UserEvent

dim res%, no%, PAN_menu%(10), for%(10), t$, CONT_ssp%, IL%, chemin$, LB_ssp%
dim txt$, i%, cnt%, index%, LP%, WP%

DIM u$ ,MEM_ssp%

for%(0) = 0
no% = 17
chemin$ = ""
cnt% = 0
full_space 0

dll_on "D:\PROGRAMMATION\GPP2\dll\KGF.dll"
on_user_event UserEvent

      PANEL no% : HIDE no% : PARENT no%,FOR%(0) : TOP no%,52 : COLOR no%,60,60,60 : show no%                                                : ' Création du MENU OBJETS dans la fenetre principale
        WIDTH no%,WIDTH_CLIENT(FOR%(0))-1 : HEIGHT no%,HEIGHT_CLIENT(FOR%(0))-52 : PAN_menu%(3)=no% : no%=no%+1                  : '    

        CONTAINER no% : PARENT no%,PAN_menu%(3) : LEFT no%,8 : TOP no%,2 : WIDTH no%,257 : HEIGHT no%,572                        : ' Positionnement des CONTAINERS d'affichage des SSP
            COLOR no%,60,60,60 : FONT_COLOR no%,230,230,230  : FONT_NAME no%,"Segoe UI" : FONT_SIZE no%,12                         : ' Mep couleur, police, taille et titre des CONTAINERs
            t$="  "+t$+"  "  : CAPTION no%,t$ : CONT_ssp%=no% : no%=no%+1
            
         ' MEMO des sous-programmes                                                                                                                      
         MEMO no% : HEIGHT no%,200 : HIDE no% : MEM_ssp%=no% : no%=no%+1        : '

                                                                      
            '  --------------- CREATION DE L'IMAGELIST ---------------
            IL%=DLL_CALL2("CreateImageList",15,15)                                                                                : '
'            t$=chemin$+"\ilb\gestssp.ilb"                                                                                          : '                                  
            t$=chemin$+"KGF.ilb"                                                                                          : '                                  
            res%=DLL_CALL2("LoadImageList",IL%,adr(t$))                                                                            : '
 
            ' --------------- CREATION DU LISTBOX (liste des sous-programmes) ----------------
            res%=dll_call1("SetMainFormHandle",handle(0))                                                                          : '
            LB_ssp%=DLL_CALL3("CreateIconListBox",handle(CONT_ssp%),IL%,1)                                                        : '
                                                                                                                              
            t$="Segoe UI" : res%=DLL_CALL3("SetDefaultFontOfIconListBox",LB_ssp%,ADR(t$),10)                                      : '
            res%=DLL_CALL5("LocateIconListBox",LB_ssp%,5,20,(WIDTH_CLIENT(CONT_ssp%)-10),(HEIGHT_CLIENT(CONT_ssp%)-25))            : '
            res%=dll_call2("OptionsForIconListBox",LB_ssp%,1)                                                                      : '
            res%=dll_call2("SetMultiSelectionLimitOfIconListBox",LB_ssp%,9)                                                        : '
            res%=dll_call4("SetColorsForIconListBox",LB_ssp%,HEX("909090"),HEX("000000"),HEX("000090"))
          
for i%=1 to 20          
  txt$ = "aaaaaaaaaaaaaaaa "+str$(i%)          
  res% = dll_call6("AddItemToIconListBox",LB_ssp%,adr(txt$),17, 17, 18, 0)
next i%
            
end      

UserEvent:
  LP% = user_event_lparam
  WP% = user_event_wparam
  if bin_and(WP%,hex("FF000000"))=hex("0A000000")  : ' un IconListBox ?
    if bin_and(WP%,hex("00FF0000"))<>hex("00010000") then return  : ' pas un clic dans une ligne ?
    if LP%<>LB_ssp% then return                                                          : ' pas le ICB attendu ?
    index% =  bin_and(WP%,hex("0000FFFF"))
  
    off_user_event        : ' *********** désactiver les USER_EVENT en cas de longs traitements                
                
                
         u$=string$(50," ")                                                                                                        : '       Initialisation de la variable contenant le nom du sous-programme
         res%=dll_call3("GetItemOfIconListBox",LB_ssp%,index%,adr(u$))                                                             : '
         u$=trim$(u$)                                                                                                              : '       Retrait des espaces
         res%=dll_call2("GetAllSelectedItemsFromIconListBox",LB_ssp%,handle(MEM_ssp%))                                             : '
         t$=LEFT$(ITEM_READ$(MEM_ssp%,COUNT(MEM_ssp%)),1)                                                                          : '       On récupére le fichier du MEMO_ssp

         IF t$="-"                                                                                                                 : '       Si la chaine est vide (-)          
            res%=dll_call5("SetItemFontColorOfIconListBox",LB_ssp%,index%,0,0,0)                                                   : '
            res%=dll_call6("SetItemFontAttributesOfIconListBox",LB_ssp%,index%,0,0,0,0)                                            : '          On désactive l'affichage dans la liste
            res%=dll_call6("ChangeElementIconInIconListBox",LB_ssp%,index%,2,0,0,0)                                                : '  
         ELSE        
            res%=dll_call5("SetItemFontColorOfIconListBox",LB_ssp%,index%,255,255,255)                                             : '
            res%=dll_call6("SetItemFontAttributesOfIconListBox",LB_ssp%,index%,1,0,0,0)                                            : '          On active l'affichage dans la liste
            res%=dll_call6("ChangeElementIconInIconListBox",LB_ssp%,index%,1,0,0,0)  
        END_IF
  
  
  
  
    cnt% = cnt% + 1
    caption 0,"Click no "+str$(cnt%)+" dans ligne "+str$(index%)+"  "+t$                                : ' récupérer le numéro de la ligne cliquée
  
    res% = dll_call1("UnblockIconListBox",LB_ssp%)
    on_user_event UserEvent    : ' *********** résactiver les USER_EVENT
  
    return
  end_if
  return

Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

[Résolu] Soucis IconListBox de KGF - Page 3 Empty
MessageSujet: Re: [Résolu] Soucis IconListBox de KGF   [Résolu] Soucis IconListBox de KGF - Page 3 EmptyMar 3 Nov 2020 - 17:44

Ok. J'ai pris ton code et je vais m'amuser avec...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


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

[Résolu] Soucis IconListBox de KGF - Page 3 Empty
MessageSujet: Re: [Résolu] Soucis IconListBox de KGF   [Résolu] Soucis IconListBox de KGF - Page 3 EmptyMar 3 Nov 2020 - 17:56

Ben... je ne vois pas où est le problème.

Je peux cliquer à n'importe quelle vitesse, n'importe où, ça se passe bien. Une ligne nouvellement sélectionnée change de couleur et la police est blanche, une ligne désélectionnée reprend sa couleur initiale et la police est noire. ET, comme il est indiqué par
Code:
            res%=dll_call2("SetMultiSelectionLimitOfIconListBox",LB_ssp%,9)
seules 9 lignes peuvent être sélectionnées en même temps. Une tentative de sélectionner une 10ème ligne est simplement ignorée.

Pour moi, ça marche. Voici ce que ça donne:
[Résolu] Soucis IconListBox de KGF - Page 3 Aa142

C'est correct, non ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

[Résolu] Soucis IconListBox de KGF - Page 3 Empty
MessageSujet: Re: [Résolu] Soucis IconListBox de KGF   [Résolu] Soucis IconListBox de KGF - Page 3 EmptyMar 3 Nov 2020 - 18:44

Ben chez moi, il y a un décalage dans les traitements...

J'ai rechargé la dll plusieurs fois croyant que cela venait de là mais non.


EDIT :

Ca y est je viens de comprendre, c'était à cause des icônes.
Je n'avais pas remis le bon chemin... Embarassed

Donc effectivement de cette façon ça fonctionne parfaitement.
Il va donc falloir que je reprenne mon code pour trouver d'ou cela provient.

Un grand merci Klaus pour le temps passé et ta patience... Wink
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Klaus

Klaus


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

[Résolu] Soucis IconListBox de KGF - Page 3 Empty
MessageSujet: Re: [Résolu] Soucis IconListBox de KGF   [Résolu] Soucis IconListBox de KGF - Page 3 EmptyMar 3 Nov 2020 - 20:53

Ouf ! Content qu'on avance ! Je suivrai cela de près, car tu as mis le doigt sur un problème majeur de gestion de procédures travaillant simultanément de façon asynchrone, et comme aucune de ces procédures n'est réentrante, il est essentiel, capital, qu'on trouve le moyen de sécuriser tout cela. Il en va de la crédbilité de KGF.dll, bien au-dela de IconListBox, et j'y tiens particulièrement !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Minibug

Minibug


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

[Résolu] Soucis IconListBox de KGF - Page 3 Empty
MessageSujet: Re: [Résolu] Soucis IconListBox de KGF   [Résolu] Soucis IconListBox de KGF - Page 3 EmptyMar 3 Nov 2020 - 21:20

Bon eh bien je suis content que tu sois content ! lol! lol!

Plus sérieusement, j'ai isolé les lignes qui posaient problèmes.
Il s'agit des dernières lignes dans le sous-programme dont une : TRIGGER_CLICK

Bon il y a encore un tout petit peu de parasitage mais seulement à haute intensité de clics et sans incidence sur le résultat.
Puisque c'est seulement la couleur et l'option texte qui dans ce cas ne sont pas synchro, mais cela reste moins grave.

Je vais quand même continué mes recherches pour essayer d'isoler complètement ses éléments perturbateurs.

Merci Klaus pour tes conseils. Tu trouves toujours une solution...
Vraiment bravo pour ta ténacité et merci pour ta disponibilité. flower
Revenir en haut Aller en bas
http://gpp.panoramic.free.fr
Contenu sponsorisé





[Résolu] Soucis IconListBox de KGF - Page 3 Empty
MessageSujet: Re: [Résolu] Soucis IconListBox de KGF   [Résolu] Soucis IconListBox de KGF - Page 3 Empty

Revenir en haut Aller en bas
 
[Résolu] Soucis IconListBox de KGF
Revenir en haut 
Page 3 sur 3Aller à la page : Précédent  1, 2, 3
 Sujets similaires
-
» [Résolu] Aide sur fonctions IconListBox de KGF
» Premières expérimentations et petits soucis
» Pour une coche "résolu" RESOLU
» Les soucis de la 27i9
» Re

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: