Problèmes avec la librairie MoreListIconGadget 1.31

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
RegisLG
Messages : 154
Inscription : mer. 22/juin/2005 2:32

Problèmes avec la librairie MoreListIconGadget 1.31

Message par RegisLG »

Bonjour,

j'ai installé la dernière version de PureBasic dispo (3.94 - Update 1) sous XP PRO SP2.
J'ai récupéré la librairie de Denis ici :
http://denislabarre.free.fr/Librairies/ ... t_1_31.exe
J'ai lancé l'install puis j'ai testé les exemples (newbie inside ;)).

Je rencontre 3 types d'erreurs :
Constant not found (ça c'est pas grave, suffit juste d'enlever les commentaires pour #PB_Even / #PB_Odd)
Invalid Memory Access (plus ennuyeux car ça plante, ça se produit le plus souvent à la fermeture du prog)
Window Object Not Initialized (euh..)

Les exemples concernés sont :

GetColumnHeaderFont (Invalid Memory Access)
GetColumnHeaderText (Window Object Not Initialized)
LockColumnSize (Invalid Memory Access)
RemoveItemsColor (Constant not found & Invalid Memory Access)
SetColumnColor (Constant not found & Invalid Memory Access)
SetColumnHeaderColor (Invalid Memory Access)
SetHeader (Invalid Memory Access)
SetItemColor (Invalid Memory Access)
SetListiconSelectedMode (Invalid Memory Access)
SetRowColor (Constant not found & Invalid Memory Access)

J'ai refait une install "de base" de PB, testé avec la vieille version 3.93 et j'ai toujours les mêmes erreurs...
1) Suis-je le seul chez qui ça plante ?
2) Avez vous une idée pour corriger cela ?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

J'ai fait des corrections en juin sur cette lib (j'ai jamais du le signaler sur le forum fr ni le forum en :roll: car c'est suite à des pb signalés par un membre du forum anglais) et j'ai mis une version corrigée sur mon site, il n'y a que la librairie elle-même, ce fichier est à mettre dans le dossier Purebasic\PureLibraries\UserLibraries en remplacement de l'ancien

Le fichier est ici

Par contre, je n'ai pas fait de tests avec la version 3.94, peut-être qu'il y a encore des problèmes ...

Merci de me les signaler
RegisLG
Messages : 154
Inscription : mer. 22/juin/2005 2:32

Message par RegisLG »

Merci Denis, effectivement c'est beaucoup mieux avec le patch.
J'ai re-testé vite fait (juste savoir si les exemples plantent ou pas), et apparement il n'en reste qu'un qui pose encore problème :

GetColumnHeaderText

Soit il me met "Ligne83:Window object not initialized" quand je ferme l'appli ou alors il plante carrément en cours d'execution.

Sinon, sur d'autres exemples, il y a quelques erreurs "cosmétiques" mais il faut que je trouve le temps de voir ça de plus près, en tout cas ça ne plante plus, c'est donc bien mieux.
lionel_om
Messages : 1500
Inscription : jeu. 25/mars/2004 11:23
Localisation : Sophia Antipolis (Nice)
Contact :

Message par lionel_om »

Faut modifier le callBack() je crois.
Car pendant la destruction des objets le CallBack() est tjrs appelé et donc il peut se mettre sur certains obj alors qu'ils viennent d'être détruits.

T'as qu'a créer un fonction :

Code : Tout sélectionner

Procedure EmptyCallBack(....)
   Procedurereturn #(La cste PureBasic Event)
Endprocedure
Et lors de la fin du prog avant le 'End' : SetWindowCallBack(@EmptyCallBack())

:wink:
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

RegisLG a écrit :Merci Denis, effectivement c'est beaucoup mieux avec le patch.
J'ai re-testé vite fait (juste savoir si les exemples plantent ou pas), et apparement il n'en reste qu'un qui pose encore problème :

GetColumnHeaderText

Soit il me met "Ligne83:Window object not initialized" quand je ferme l'appli ou alors il plante carrément en cours d'execution.

Sinon, sur d'autres exemples, il y a quelques erreurs "cosmétiques" mais il faut que je trouve le temps de voir ça de plus près, en tout cas ça ne plante plus, c'est donc bien mieux.
Ces fonctions doivent dater d'avant les fonctions PB ISxxxx qui permettent d'éviter ces problèmes

Simplement, la ligne 83 devient

Code : Tout sélectionner

            If IsWindow(#WindowRequester) = 0
et le problème est résolu
RegisLG
Messages : 154
Inscription : mer. 22/juin/2005 2:32

Message par RegisLG »

Merci Denis, effectivement ça fonctionne impec :)
Répondre