Sysanimate32 n'affiche rien ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
tme007
Messages : 57
Inscription : mar. 26/oct./2004 12:34

Sysanimate32 n'affiche rien ?

Message par tme007 »

Bonjour, j'ai une fenêtre principale (#Windows_0) dans laquelle 'tourne' (si l'on peut dire) mon application, sous certaines conditions un processus de réplication démarre et pour celui-ci, je souhaite afficher dans une nouvelle fenêtre (#Window_1), l'animation d'un 'copier/coller' ainsi qu'une progressbar ... malheureusement, le texte et la progressbar s'affichent correctement, sauf l'animation ...

Code : Tout sélectionner

Librairie = OpenLibrary(0,"shell32.dll")
If OpenWindow(#Window_1,100,150,335,170,#PB_Window_WindowCentered,"Info ...")  
        If CreateGadgetList(WindowID()) 
          TextGadget(#Text_0,5,WindowHeight() - 50,129,24,"Réplication en cours ...") 
          ProgressBarGadget(#ProgressBar_0, 0, WindowHeight() - 27, WindowWidth(),27,0,CountGadgetItems(#ListIcon_0),#PB_ProgressBar_Smooth) 
          AniWin = CreateWindowEx_(0, "SysAnimate32", "", #ACS_AUTOPLAY | #ACS_CENTER | #ACS_TRANSPARENT | #WS_CHILD | #WS_VISIBLE | #WS_CLIPCHILDREN | #WS_CLIPSIBLINGS, 10, 0, 300, 90, WindowID(), 0, GetModuleHandle_(0), 0)  
          SendMessage_(AniWin, #ACM_OPEN, Librairie, 161)
          RedrawWindow_(AniWin, 0, 0, #RDW_INVALIDATE | #RDW_ERASE)
        EndIf
      EndIf  
CloseLibrary(0)
Je précise que durant le processus de réplication, la progressbar se met bien à jour au fur et à mesure de l'avancement ...
Pour l'animation, j'ai pensé à un problème de coordonnées et donc pour essayer j'ai pris les infos de la démonstration du Soldat Inconnu provenant de PureCode 1.1 ... et cela ne fonctionne toujours pas dans mon cas. Quelqu'un aurait-il une idée ?
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Tel que tu nous le montre, ton code ne présente pas de défaut si ce n'est celui de pouvoir l'essayer.

:evil:

Il y a un moment où il faut faire play pour que ça fonctionne.
tme007
Messages : 57
Inscription : mar. 26/oct./2004 12:34

Sysanimate32 n'affiche rien ?

Message par tme007 »

Bizarrement, si je prends ce bout de code seul dans mon JapBe, que je définis les constantes #Window_1 à 0, #Text_0 à 1, #ProgressBar_0 à 2 et que je fixe manuellement la limite supérieure du progressbar ... Je compile et hop, l'animation est bien affichée !

C'est comme si le fait d'ouvrir une nouvelle fenêtre #Window_1 au dessus de ma #Window_0 ne supporte pas la création d'une 3ème fenêtre (AniWin, dans la #Window_1) pour l'affichage de l'animation ...

Bizarre, non ? Est-ce que quelqu'un aurait un exemple fonctionnel de ce genre que je pourrais consulter ?
tme007
Messages : 57
Inscription : mar. 26/oct./2004 12:34

Sysanimate32 n'affiche rien ?

Message par tme007 »

J'ai trouvé !!!

J'ai déplacé mon instruction OpenLibrary(0,"shell32.dll") à l'intérieur du code de la Procedure/EndProcedure de réplication et là, magie, l'animation s'affiche nickel !
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Tes explications nous servent à rien!
tme007
Messages : 57
Inscription : mar. 26/oct./2004 12:34

Sysanimate32 n'affiche rien ?

Message par tme007 »

C'est une façon de voir les choses ... mon problème était dû au scope des variables, je n'avais pas déclaré ma variable 'Librairie' en tant que Global, et donc elle n'était pas accessible à l'intérieur de la procédure. Il faut avouer que Pure est le 1er langage que je connaisse qui ne prend pas d'office comme globale, une variable créée en dehors de tout code de procédure ... Mais bon, comme l'ont dit chez moi: 'Il faut être pris pour être appris !'
Répondre