Page 1 sur 1

Icone dans un sprite [Resolu]

Publié : jeu. 03/déc./2009 14:46
par Kwai chang caine
Bonjour la famille

Grace au super code de TYPHOON, j'ai maintenant ma spirale dans un anneau rond.
Comme il m'a dit....t'as plus qu'a ...... :lol: :lol: :lol: :lol:
Hummm humm excusez moi c'est nerveux :oops:

Donc y m'a dit que j'avais plus qu'a creer un sprite et mettre l'icone dedans ....
Apres trois heures entre la recherche sur les forums et la torture d'un code qui m'avait au demeurant rien fait :roll:
J'etais content car si y'a une chose dont je suis fier, c'est que je reste constant dans le resultat de mes durs labeurs.....je suis arrivé a rien :?

Pas moyen de faire apparaitre ce satané icone de Biiiiiiiiiiiiiiiiiiiiiiiiiiiip !!!! :?
Vu que je fais jamais de graphisme ou presque si ce n'est le skinnage des form...autant dire que j'y vois clair comme la nuit par une nuit d'eclipse.

Alors si quinquin y peut me dire, ce qui gazouille pas...
J'obtiens le handle de l'image par l'API "SHGetFileInfo_" mais c'est peut etre pas le handle qu'attend la fonction "DrawImage" j'ai un peu tout essayé les imageID et tout le toutim ....meme l'api "GetDlgCtrlID_" et peau de zobi...

Code : Tout sélectionner

Enumeration
 #Sprite
EndEnumeration

Structure MySHFILEINFO 
  hIcon.l 
  iIcon.l 
  dwAttributes.l 
  szDisplayName.b[#MAX_PATH] 
  szTypeName.b[80] 
EndStructure 

InitSprite()

OpenWindow(0,0,0,200,100, "Icon",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0), 0, 0, 100, 100, 0, 0, 0)
DragAcceptFiles_(WindowID(0), #True)

Repeat  
  
 Evenement = WaitWindowEvent()
  
 If Evenement = #WM_DROPFILES
  
  Define Dropped.l, Num.l, Index.l, Size.l, FileName.s
  Dropped = EventwParam()
  Num = DragQueryFile_(Dropped, - 1, "", 0)
     
  For Index = 0 To Num - 1
   
   Size.l = DragQueryFile_(Dropped, Index, 0, 0)
   FileName.s = Space(Size)
   DragQueryFile_(Dropped, Index, FileName, Size + 1)
         
  Next
  
  DragFinish_(Dropped)
  
  If SHGetFileInfo_(FileName, 0, @Info.MySHFILEINFO, SizeOf(MySHFILEINFO), #SHGFI_ICON|#SHGFI_LARGEICON) 
    
   IconHandle = Info\hIcon 
   ImageGadget(0, 100, 0, 32, 32, IconHandle) 
      
   CreateSprite(#Sprite, 32, 32)
   StartDrawing(SpriteOutput(#Sprite))
   DrawImage(IconHandle, 0, 0, 32, 32)
   StopDrawing()
    
   DestroyIcon_(IconHandle) 
  
  EndIf 

 EndIf
   
Until Evenement = #PB_Event_CloseWindow
Je vous remercie
Bonne journée

Re: Icone dans un sprite

Publié : jeu. 03/déc./2009 15:38
par Thyphoon
Heu ! Chez moi ça marche ! WINXP PRO SP3 !
j'ai bien l'icon qui apparait a droite du carré noir ! :)
c'est pas ce que tu voulais ?

Re: Icone dans un sprite

Publié : jeu. 03/déc./2009 15:45
par Thyphoon
a oui j'ai compris ce que tu voulais faire .... :P
mai bon c'est bien de le mettre l'icon dans un sprite ......mais apres il faut l'afficher ce sprite dans le screen c'est ce que tu avais oublié ! :mrgreen:
tient !

Code : Tout sélectionner

Enumeration
#Sprite
EndEnumeration

Structure MySHFILEINFO
  hIcon.l
  iIcon.l
  dwAttributes.l
  szDisplayName.b[#MAX_PATH]
  szTypeName.b[80]
EndStructure

InitSprite()

OpenWindow(0,0,0,200,100, "Icon",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0), 0, 0, 100, 100, 0, 0, 0)
DragAcceptFiles_(WindowID(0), #True)

Repeat 
 
Evenement = WaitWindowEvent()
 
If Evenement = #WM_DROPFILES
 
  Define Dropped.l, Num.l, Index.l, Size.l, FileName.s
  Dropped = EventwParam()
  Num = DragQueryFile_(Dropped, - 1, "", 0)
     
  For Index = 0 To Num - 1
   
   Size.l = DragQueryFile_(Dropped, Index, 0, 0)
   FileName.s = Space(Size)
   DragQueryFile_(Dropped, Index, FileName, Size + 1)
         
  Next
 
  DragFinish_(Dropped)
 
  If SHGetFileInfo_(FileName, 0, @Info.MySHFILEINFO, SizeOf(MySHFILEINFO), #SHGFI_ICON|#SHGFI_LARGEICON)
   
   IconHandle = Info\hIcon
   ImageGadget(0, 100, 0, 32, 32, IconHandle)
     
   CreateSprite(#Sprite, 32, 32)
   StartDrawing(SpriteOutput(#Sprite))
   DrawImage(IconHandle, 0, 0, 32, 32)
   StopDrawing()
   SetGadgetState(0,IconHandle)
   DestroyIcon_(IconHandle)
 
  EndIf

EndIf
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<ICI
If IsSprite(#Sprite)
   DisplaySprite(#Sprite,0,0)
 EndIf  
   FlipBuffers()
Until Evenement = #PB_Event_CloseWindow

Re: Icone dans un sprite

Publié : jeu. 03/déc./2009 16:30
par Kwai chang caine
Merci beaucoup TYPHOON :D

Alors si j'ai bien compris......c'est comme dans la vie...pour regarder la télé suffit pas de se mettre devant...faut l'allumer :mrgreen:
Un copain y m'a sauvé de la merde apres un mois que j'avais acheté une télé et que je trouvais que tout le monde y disait que c'etait interessant la télé et moi je voyais pas l'interet de cet ecran noir :roll:

Encore merci, t'es trop cool 8)
Y me reste encore ce big probleme pour lier mes deux fenetres spirale et anneau, et ça devrait etre fini pour la partie graphique ...enfin j'espere, quelque "sboing" "sboing""sboing" et des "Sluuuurrrp" en son audio a rajouter et je peux clore l'affaire.
Ouaih car pour le syphon, le bruit de "chiotte" ça va pas etre bon pour mon avancement :lol:

Encore merci et excelente journée a toi 8)

Re: Icone dans un sprite [Resolu]

Publié : jeu. 03/déc./2009 17:14
par Thyphoon
Pour tes 2 fenêtre lié a mon avis une seul fenêtre est nécessaire.... pourquoi n'affiche tu pas ton anneau au dessus de ta spiral directement ?

Re: Icone dans un sprite [Resolu]

Publié : jeu. 03/déc./2009 18:27
par Kwai chang caine
Bah ......parce que je sais pas faire !!!! :mrgreen:

L'anneau est un skin de NETMAESTRO et je ne suis pas arrivé à faire ton image qui tourne au milieu de l'anneau qui lui ne bouge pas ..mais qui est a bords transparents :oops:
J'ai essayé les MDI et d'autres choses...sans succes :(

En fait pour etre sur que ça fasse "Joulie" ...il faut d'abord mettre ta superbe spirale et apres dessiner l'anneau comme ça la spirale elle est bien dans l'anneau et elle ne deborde pas sur l'anneau qui lui n'est pas rond :roll:

Ca m'ennerve parce que j'suis pas loin du bol de sangria, comme dirait bigard :?

J'ai trouvé le bruit du syphon....et je me marre d'avance parce que le client quand le fichier il arrive....et bien j'ai trouvé un code sur le US qui liste les icone bureau, et des que le fichier il est déposé sur le bureau, je le fait sortir de derriere l'anneau et rebondir...sboing sboing et de plus en plus court le bond :lol:
Alors tu jurerais que le fichier l'anneau, il le crache :lol:

Mais la aussi j'ai un petit probleme de timing, ce qui est dommage c'est qu'apparement PB n'attend pas que le "ReceiveNetworkFile" est fini son boulot, et ma procedure d'apres que j'ai nommé "BoingBoing" originale non ??? et bien elle cherche le fichier et comme il est pas encore fini, elle arrive pas a le faire rebondir ou alors une fois sur deux :?
Apparement, y'a pas de delay qui verifie la fin de l'envoi du fichier...je vais voir du coté des evements serveur/client :roll:

Mais bon, il commence a se faire tard...et 12 h au boulot...c'est pas mal quand on est payé 8 :D