Les objets en PureBasic
Les objets en PureBasic
Rebonjour !
Il y a longtemps que je n'ai pas posté ici ! Ça fait plaisir de retrouver la petite bande habituelle du forum français !
J'aurais une petite question pour vous cependant, afin de marquer ce retour inattendu.
Je n'ai jamais pris la peine de vérifier cette information, ayant toujours utiliser une seule grande énumération dans laquelle je me perdais.
Si nous créons un objet Image à l'emplacement 0 de l'index, peut-on créer un objet différent, par exemple un Sprite, à l'emplacement 0 ?
En clair, est-ce qu'il n'y a qu'un seul grand index, ou bien chaque catégorie d'objet possède leur propre index ?
Je vous remercie d'avance !
Il y a longtemps que je n'ai pas posté ici ! Ça fait plaisir de retrouver la petite bande habituelle du forum français !
J'aurais une petite question pour vous cependant, afin de marquer ce retour inattendu.
Je n'ai jamais pris la peine de vérifier cette information, ayant toujours utiliser une seule grande énumération dans laquelle je me perdais.
Si nous créons un objet Image à l'emplacement 0 de l'index, peut-on créer un objet différent, par exemple un Sprite, à l'emplacement 0 ?
En clair, est-ce qu'il n'y a qu'un seul grand index, ou bien chaque catégorie d'objet possède leur propre index ?
Je vous remercie d'avance !
Re: Les objets en PureBasic
oui !
tu peux faire
dans le meme listing ...
perso , je n'utilise pas ceci , je prefere une seule enumeration !
je trouve que c'est plus clair de tout regrouper.. mais il y a vraiment 2 ecoles pour ça
certains préfèrent séparer par genre :
pour ne pas se perdre , la solution c'est :
style enumeration pour les Fenetre , pour les Gadget , pour les donnée perso , etc ...

tu peux faire
Code : Tout sélectionner
enumeration
image.i
fenetre.i
endenumeration
enumeration
sprite.i
sprite1.i
endenumeration
perso , je n'utilise pas ceci , je prefere une seule enumeration !
je trouve que c'est plus clair de tout regrouper.. mais il y a vraiment 2 ecoles pour ça
certains préfèrent séparer par genre :
pour ne pas se perdre , la solution c'est :
Code : Tout sélectionner
enumeration
; *** fenetre <<<<<<<<<< ajouter des commentaires ou des
;- *** fenetre <<< signets :comme ça ça apparait dans les onglets
win1
win2
win3
;*** sprite
sprite1
sprite2
;*** donnee
x.i
y.i
z.i
endenumeration
style enumeration pour les Fenetre , pour les Gadget , pour les donnée perso , etc ...

Dernière modification par Backup le dim. 27/mai/2012 10:19, modifié 1 fois.
Re: Les objets en PureBasic
Après, on peut séparer en plusieurs énumérations en utilisant #PB_Compiler_EnumerationValue et elles se suivront :
Code : Tout sélectionner
enumeration
#window ; vaut 0
#image1 ; vaut 1
endenumeration
Enumeration #PB_Compiler_EnumerationValue
#sprite1 ; vaut 2
endenumeration
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: Les objets en PureBasic
ou
qui donnerais
#blah=0
#bleh=1
#blah2=12
#bleh2=13
Code : Tout sélectionner
enumeration
#blah
#bleh
endenumeration
enumeration
#blah2=12
#bleh2
endenumeration
#blah=0
#bleh=1
#blah2=12
#bleh2=13
Dernière modification par case le dim. 27/mai/2012 13:25, modifié 1 fois.
Re: Les objets en PureBasic
Exacte, c'est ce que je fais moi et c'est bien pratiqueblendman a écrit :Après, on peut séparer en plusieurs énumérations en utilisant #PB_Compiler_EnumerationValue et elles se suivront :
Code : Tout sélectionner
enumeration #window ; vaut 0 #image1 ; vaut 1 endenumeration Enumeration #PB_Compiler_EnumerationValue #sprite1 ; vaut 2 endenumeration

Edit: Question
Code : Tout sélectionner
enumeration
image.i
fenetre.i
endenumeration
enumeration
sprite.i
sprite1.i
endenumeration
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !
Mon forum http://purebasic.forumphp3.com/index.php
Mon forum http://purebasic.forumphp3.com/index.php
Re: Les objets en PureBasic
Case,case a écrit :ouCode : Tout sélectionner
enumeration #blah #bleh endenumeration enumeration #blah2=12 #bleh2 endenumeration
#bleh=1
Pour ce cas je pense qu'il est plus 'propre' de faire :
Code : Tout sélectionner
enumeration
#blah
#bleh
endenumeration
enumeration 12
#blah2
#bleh2
endenumeration
#blah=0
#bleh=1
#blah2=12
#bleh2=13
P.s : Content de te lire Warkering
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Les objets en PureBasic
Lis la définition d'enumération dans la doc...dayvid a écrit : Ceci ne marche pas cher moi, on ne peut mettre que des constantes dans les enumerations non ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: Les objets en PureBasic
Il vaut mieux separer les enumeration et recommencer à 0 a chaque fois, car sinon il y arua de la place perdue:
Ici, les fenetres commenceront à '2', donc les slots 0 et 1 seront inutilisés (mais alloués quand meme en memoire)
Les menus commenceront à '4', donc les slots 0, 1, 2, 3 seront inutilisés (mais alloués quand meme en memoire)
etc.
C'est pas du tout optimal, surtout quand le nombre d'objet augmente.
Code : Tout sélectionner
Enumeration
#Sprite1
#Sprite2
#Window1
#Window2
#Menu1
#Menu2
EndEnumeration
Les menus commenceront à '4', donc les slots 0, 1, 2, 3 seront inutilisés (mais alloués quand meme en memoire)
etc.
C'est pas du tout optimal, surtout quand le nombre d'objet augmente.
Re: Les objets en PureBasic
ha... peut etre un truc a ajouter dans la doc ,Fred a écrit : Ici, les fenetres commenceront à '2', donc les slots 0 et 1 seront inutilisés (mais alloués quand meme en memoire).
je ne pensais pas qu'il y est un allocation des Constantes inexistantes ...

dans ce cas effectivement ..
Re: Les objets en PureBasic
http://www.purebasic.com/french/documen ... jects.htmlDobro a écrit :ha... peut etre un truc a ajouter dans la doc ,Fred a écrit : Ici, les fenetres commenceront à '2', donc les slots 0 et 1 seront inutilisés (mais alloués quand meme en memoire).
je ne pensais pas qu'il y est un allocation des Constantes inexistantes ...![]()
dans ce cas effectivement ..
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Re: Les objets en PureBasic
j'ai du mal avec la notion d'emplacement ....
lorsque je regarde comment Pb transforme un createimage en ASS
et si j'en crois la Doc
doc :
dans ce cas , la Ram est donc déja prise non ?
ou bien "l'emplacement" est juste un indice , dans ce cas , aucune importance de commencer a 1000
ou bien si j'en crois la doc , l'emplacement est important, dans ce cas , on est forcement limité au nombres "d'emplacement"
bref : Definir "emplacement" .... ??
de plus ... si emplacement est pré-reservé , et donc limité dans son nombre ...
comment est geré le #pb_any qui renvoie les 3/4 du temps , un nombre énorme comparé a no petit 1000 ??
beaucoup de questions n'est 'il pas ?
lorsque je regarde comment Pb transforme un createimage en ASS
et si j'en crois la Doc
Code : Tout sélectionner
; CreateImage(2, 640, 480) ; Crée une image à l'emplacement 2
PUSH dword 480
PUSH dword 640
PUSH dword 2
CALL _PB_CreateImage_UNICODE@12
doc :
cela sous entends , qu'il y a un emplacement pré-reservé ?si vous utilisez la valeur 0 pour votre premier objet et la valeur 1000 pour votre deuxième objet, il y aura 1001 index de disponibles et 999 seront inutilisés, ce qui n'est pas très efficace (gâchis de mémoire vive).
dans ce cas , la Ram est donc déja prise non ?
ou bien "l'emplacement" est juste un indice , dans ce cas , aucune importance de commencer a 1000
ou bien si j'en crois la doc , l'emplacement est important, dans ce cas , on est forcement limité au nombres "d'emplacement"
bref : Definir "emplacement" .... ??
de plus ... si emplacement est pré-reservé , et donc limité dans son nombre ...
comment est geré le #pb_any qui renvoie les 3/4 du temps , un nombre énorme comparé a no petit 1000 ??
beaucoup de questions n'est 'il pas ?
Re: Les objets en PureBasic
si #pb_any est utilisé , tu as un pointeur en retour
sinon , pour une fenetre tu as en retour l'équivalent d'un windowID() , ca ne renvois pas un emplacement dans une table quelquonque :
sinon , pour une fenetre tu as en retour l'équivalent d'un windowID() , ca ne renvois pas un emplacement dans une table quelquonque :
Code : Tout sélectionner
A = OpenWindow(0,0,0,1,1,"")
B = OpenWindow(#PB_Any,0,0,1,1,"")
Debug A ; = WindowID(0)
Debug B ; = Pointeur sur l'objet
Re: Les objets en PureBasic
oui 
c'est cette phrase , et celle de Fred , que je met a l'index
je croyais que la Ram sous windows etait dynamique ( d'ou fragmentation )
ce discours tiendrai peut etre si la Ram etait geré par page .... mais l'est t'elle encore de nos jours ..?

c'est cette phrase , et celle de Fred , que je met a l'index
c'est surtout le rouge, que j'ai du mal a comprendre ...si vous utilisez la valeur 0 pour votre premier objet et la valeur 1000 pour votre deuxième objet, il y aura 1001 index de disponibles et 999 seront inutilisés, ce qui n'est pas très efficace (gâchis de mémoire vive).
je croyais que la Ram sous windows etait dynamique ( d'ou fragmentation )
ce discours tiendrai peut etre si la Ram etait geré par page .... mais l'est t'elle encore de nos jours ..?
Re: Les objets en PureBasic
Merci de vos réponses.
J'utilisais la méthode de Blendman. Dorénavant, ce sera la méthode Fred !
Et oui Dobro, la mémoire est toujours paginée de nos jours, par quatre mégaoctets je crois bien. Ce serais même un peu insensé de nos jours de gérer huit gigaoctets de mémoire vive autrement.
J'utilisais la méthode de Blendman. Dorénavant, ce sera la méthode Fred !
Et oui Dobro, la mémoire est toujours paginée de nos jours, par quatre mégaoctets je crois bien. Ce serais même un peu insensé de nos jours de gérer huit gigaoctets de mémoire vive autrement.
Re: Les objets en PureBasic
Content de te revoir parmis nous Warkering 

La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !
Mon forum http://purebasic.forumphp3.com/index.php
Mon forum http://purebasic.forumphp3.com/index.php