Icone dans un sprite [Resolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Icone dans un sprite [Resolu]

Message 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
Dernière modification par Kwai chang caine le jeu. 03/déc./2009 16:31, modifié 1 fois.
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Icone dans un sprite

Message 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 ?
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Icone dans un sprite

Message 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
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Icone dans un sprite

Message 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)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: Icone dans un sprite [Resolu]

Message 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 ?
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Icone dans un sprite [Resolu]

Message 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
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre