Page 1 sur 1
[RESOLU]Création de Gadgets : Problème de lenteur
Publié : jeu. 31/mai/2007 13:16
par Progi1984
Etant en train de créer un gadget de type OutlookBar, j'ai un problème de lenteur :
File:1->
OGadget.pb
Le problème est que la création de la fenetre rame ! Je ne sais pas si ca vient de la création du gadget ou des addGadgetitem...
De plus, cela rame pas tout le temps ! Dès fois, la création ne va pas ramer et certaines fois plusieurs secondes !
Merci d'avance pour votre aide !
Publié : jeu. 31/mai/2007 15:05
par brossden
Tu utilises une lib : ObjectManager.lib !
Peux tu nous donner le lien pour la telecharger ?
Publié : jeu. 31/mai/2007 16:14
par Progi1984
Regarde dans ton dossier Compiler du dossier Purebasic

Publié : jeu. 31/mai/2007 17:59
par Anonyme2
Je l'ai ouvert 15 fois de suite et c'est immédiat. Ca ne rame pas.
Publié : jeu. 31/mai/2007 18:14
par flaith
Denis a écrit :Je l'ai ouvert 15 fois de suite et c'est immédiat. Ca ne rame pas.
Pareil pour moi
Publié : ven. 01/juin/2007 18:27
par Flype
chez moi effectivement çà rame dur parfois.
il y a quelque fois 10 ou 15 secondes d'attente.
Publié : sam. 02/juin/2007 7:23
par lionel_om
flaith a écrit :Denis a écrit :Je l'ai ouvert 15 fois de suite et c'est immédiat. Ca ne rame pas.
Pareil pour moi
+1
Publié : sam. 02/juin/2007 16:39
par Progi1984
Pour ceux qui ont des ralentissements : à quel niveau : AddGadgetItem ou Creation du Gadget ?
Pour ceux qui n'en ont pas : testé avec et sans le débuggueur ?
Merci à tous !
Publié : dim. 03/juin/2007 16:16
par Progi1984
Incide : En remplacant le containergadget par un imagegadget, je gagne pas mal de secondes !
Publié : dim. 03/juin/2007 17:39
par Dr. Dri
testé avec et sans debugger sans ralentissement, mais j'en ai déjà eu une fois.
essaye ça :
Code : Tout sélectionner
LockWindowUpdate_( WindowID(#Fenetre) )
;création des gadgets
LockWindowUpdate_(#Null)
Dri
Publié : lun. 04/juin/2007 7:47
par Progi1984
J'ai mis cela dans la fonction OB_AddGadgetItem3, comme cela :
Code : Tout sélectionner
Procedure OB_AddGadgetItem3(*gadget.PB_Gadget, Position, Texte.s , ImageID, Options)
Protected Inc_a.l
If *gadget
Protected *info.S_ROutlookBar = OUTLOOKBAR_ID(*gadget\gadget)
With *info
LockWindowUpdate_(\HwndParent)
CreateGadgetList(GadgetID(\HwndStaticBg))
If Position = -1
Position = \NbHeader
Else
For Inc_a = \NbHeader To Position+1 Step -1
\ButtonID[Inc_a]\ID = \ButtonID[Inc_a-1]\ID
\ButtonID[Inc_a]\Pos\top = \ButtonID[Inc_a-1]\Pos\top + 20
Next
EndIf
\ButtonID[Position]\ID = ButtonGadget(#PB_Any,0,\ButtonID[Position]\Pos\top,\width,20,Texte)
\NbHeader +1
If Position > -1
For Inc_a = 0 To \NbHeader-1
ResizeGadget(\ButtonID[Inc_a]\ID, 0,\ButtonID[Inc_a]\Pos\top,\width,20)
Next
EndIf
\State = Position
OB_SetGadgetState(*gadget, Position)
InvalidateRect_(*gadget\Gadget, 0, #True)
UseGadgetList(\HwndParent)
LockWindowUpdate_(#Null)
EndWith
EndIf
EndProcedure
Est ce comme cela qu'il fallait l'utiliser ?
---
J'ai mis à jour le code... tout en haut ! Donc si vous voulez bien le tester, svp !
Publié : mar. 05/juin/2007 10:01
par Progi1984
Bon, le problème est réglé ! Mieux vaux utiliser SetProp_, GetProp_ et RemoveProp_ pour la création d'un gadget que d'utiliser la lib gérant les objects !