Premiers essais avec PB
Re: Premiers essais avec PB
Le code est faux, mais c'est pas 'gênant' (pas de risque de plantage), tu as seulement des trous dans tes allocations donc c'est pas très optimisé.
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Premiers essais avec PB
Ouf !!!! merci Fred de m'avoir enlevé ce poids...
Je me voyais mal encore tout recoder, j'ai déjà du mal à suivre les versions
Ma vie est pleine de trous.....je me demande même si ça en est pas carrément un
Un trou noir ....béant..qui absorbe tout sur son passage
Quand à l'optimisation...comment dire...huuummm ...je laisserais le peaufinage à mes enfants...quand j'en aurais
J'suis deja toujours emmerveillé de ce qu'une machine arrive à faire avec ce que je lui ecrit ...
Alors je vais quand même pas lui demander d'etre rapide
C'est comme pour les filles....moi je faisais un choix draconnien.....je prenais "EXCLUSIVEMENT" celles qui disait "oui"
En d'autres mots ...je suis resté seul toute ma jeunesse
Encore merci pour tout Fred

Je me voyais mal encore tout recoder, j'ai déjà du mal à suivre les versions

Si y'avait que dans mes allocations, même familliales, que j'ai des trous, ce serait pas grave.Dieu a écrit :tu as seulement des trous dans tes allocations donc c'est pas très optimisé.
Ma vie est pleine de trous.....je me demande même si ça en est pas carrément un

Un trou noir ....béant..qui absorbe tout sur son passage
Quand à l'optimisation...comment dire...huuummm ...je laisserais le peaufinage à mes enfants...quand j'en aurais

J'suis deja toujours emmerveillé de ce qu'une machine arrive à faire avec ce que je lui ecrit ...

Alors je vais quand même pas lui demander d'etre rapide
C'est comme pour les filles....moi je faisais un choix draconnien.....je prenais "EXCLUSIVEMENT" celles qui disait "oui"

En d'autres mots ...je suis resté seul toute ma jeunesse

Encore merci pour tout Fred

Re: Premiers essais avec PB
Ah mais c'est excellent ça ! Par exemple,avec un logiciel dans lequel on a plusieurs fenêtres ! (genre un soft de 2D, de jeu)De plus avec la 5.20 il est possible de nommer une enumeration, pour pouvoir la continuer plus tard:

PS : faudrait l'indiquer dans l'aide, car ça n'est pas explicité (je n'ai trouvé dans les enumeration).
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: Premiers essais avec PB
@Fred
la doc dit :
j'obtiens comme numero de fenetre :3680488 (a ce moment du test.. bien sur le nombre est variable a chaque lancement )
si j'avais utilisé l"enumeration
tu aurai dis que ce numero est trop grand qu'un nombre d'espaces est pris par defaut bla bla
que ça consomme de la ram ....ou dieu c'est quoi..
(discussion ancienne sur les Enumeration )
alors que pour #Pb_Any ça te semble normal d'utiliser des indices de grande taille ...
il y a comme une incohérence dans ton discours
soit ce nombre ne correspond pas contrairement a ce que laisse entendre la Doc
a l'indice de fenêtre (pour cette exemple )
soit #pb_any donne des indices trop grands ... ??
la doc dit :
lorsque je faitOuvre une nouvelle fenêtre avec les paramètres spécifiés. Si #PB_Any est utilisé pour le paramètre '#Fenetre', le numéro de la fenêtre sera renvoyé dans 'Resultat'.
Code : Tout sélectionner
id=OpenWindow(#pb_any,10,10,320,200,"")
debug id
CallDebugger
si j'avais utilisé l"enumeration
Code : Tout sélectionner
Enumeration 3680488
#win
Endenumeration
debug #win
que ça consomme de la ram ....ou dieu c'est quoi..
(discussion ancienne sur les Enumeration )
alors que pour #Pb_Any ça te semble normal d'utiliser des indices de grande taille ...
il y a comme une incohérence dans ton discours

soit ce nombre ne correspond pas contrairement a ce que laisse entendre la Doc
a l'indice de fenêtre (pour cette exemple )
soit #pb_any donne des indices trop grands ... ??
Re: Premiers essais avec PB
Ta rien pigé.alors que pour #Pb_Any ça te semble normal d'utiliser des indices de grande taille ...
il y a comme une incohérence dans ton discours

#PB_Any est une constante qui indique au système interne des ID , qu'on se fiche du numéro , lui en interne va les alloué de manière automatique & optimisé.
et ce numéro , tu n'y aura pas accès , car en utilisant #PB_Any tu t'en fou.
Re: Premiers essais avec PB
exactement G-Rom.Dobro a écrit :tu aurai dis que ce numero est trop grand qu'un nombre d'espaces est pris par defaut bla bla
que ça consomme de la ram ....ou dieu c'est quoi..
(discussion ancienne sur les Enumeration )
alors que pour #Pb_Any ça te semble normal d'utiliser des indices de grande taille ...
il y a comme une incohérence dans ton discours
soit ce nombre ne correspond pas contrairement a ce que laisse entendre la Doc
a l'indice de fenêtre (pour cette exemple )
soit #pb_any donne des indices trop grands ... ??
@Dobro : Il y a déjà plein de topic qui expliquent le fonctionnement de #pb_any. Ça serai cool de ne pas perdre le débutant dans leurs topic de question en apportant des discussions qui n'ont rien a y faire.
Ensuite tant qu'à répondre :
L'utilisation d'un numéro autre que #pb_any, donc en utilisant la déclaration statique, PB va allouer un tableau dont les index correspondent aux numéros alloués.
C'est l'allocation statique.
Exemple : si je déclare une fenêtre avec le numéro 3, les index 0, 1, 2 sont créés aussi, même si ils sont vides.
Maintenant si tu utilises #pb_any, le système va ajouter une entrée dans sa liste dynamique, et te retourne un numéro qui n'est pas utilisé auparavant.
De plus ce numéro est choisi en dehors des amplitudes des numéros fixes.
Car il me semble complètement improbable que tu arrives, ou que tu te casses le *** à déclarer statiquement 3millions de gadgets.
Ce fonctionnement implique que si tu déclares une fenêtre avec un nombre très élevé, derrière, PB va allouer un tableau de la taille de cet index...
Du coup la mémoire va en prendre un coup, et surtout la vitesse.
Fred ou G-Rom, corrigez moi si j'ai dis une bourde

Maintenant PureBasic est un outil que tu utilises pour arriver à tes fins, si tu désires l'utiliser aux limites de ses fonctions, comme utiliser un marteau pour enfoncer une vis... C'est ton choix.
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel
)
Mon site : CeriseCode (Attention Chantier perpétuel

Re: Premiers essais avec PB
C'est très gentil mais au contraire, j'avoue être plutôt impressionné par votre réactivité et on resent rapidement que vous avez tous envie d'aider et je vous en remercie grandement !@Dobro : Il y a déjà plein de topic qui expliquent le fonctionnement de #pb_any. Ça serai cool de ne pas perdre le débutant dans leurs topic de question en apportant des discussions qui n'ont rien a y faire.

Re: Premiers essais avec PB
@graph100: c'est tout bon.
- falsam
- Messages : 7317
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Premiers essais avec PB
Un bon sujet pour une bonne mise au pointFred a écrit :@graph100: c'est tout bon.

Squale ta question ne veut rien dire (Quoi qu'en ce moment je me méfie de l'interprétation qu'il faut donner au questionssquale a écrit :Puis-je avoir un 1 pour une image et un 1 pour un gadget dans le même code ?

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Premiers essais avec PB
Allez, mon grain de sel : les exemples de code avec Enumeration ou #PB_Any sont (à mon avis) trop compliqués et perturbent le débutant. D'autant que quand on fait une petite appli, qui n'a pas vocation à grandir, cela ne sert à rien ! Un simple numéro et on s'en sort très bien, et c'est d'ailleurs (je pense) pourquoi dans la doc de PB, quasiment tous les exemples (par exemple Windows.pb) utilisent l'indice 0.
Une règle simple pour s'en rappeler (que j'ai d'ailleurs en poster) : KISS -> KEEP IT SIMPLE, STUPID !!! (Que ça reste simple, imbécile !)
Une règle simple pour s'en rappeler (que j'ai d'ailleurs en poster) : KISS -> KEEP IT SIMPLE, STUPID !!! (Que ça reste simple, imbécile !)
- falsam
- Messages : 7317
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Premiers essais avec PB
C'est ce que j'aime dans les gens du nord : Simplicité, gentillesse, plaisir. 

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Premiers essais avec PB
Tu me trouves trop direct ?falsam a écrit :C'est ce que j'aime dans les gens du nord : Simplicité, gentillesse, plaisir.

- falsam
- Messages : 7317
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Premiers essais avec PB
Mais non pas du tout. au contraire j'aime bien.djes a écrit :Tu me trouves trop direct ?

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Premiers essais avec PB
Petite rectification :Squale ta question ne veut rien dire. Tout ce que tu mets sur une description de fenêtre EST un gadget. Quand à la numérotation de ces gadgets et bien je ne reviendrais pas dessusPuis-je avoir un 1 pour une image et un 1 pour un gadget dans le même code ?
- si tu veux dire par "image" : une image (créée avec loadImage() ou createimage())> oui, tu peux avoir une image avec un numéro 1 et un gadget avec un numéro 1
- si tu veux dire par "image" : un imagegadget(), alors non, deux gadgets ne peuvent pas avoir le même numéro.
Par exemple, deux gadgets ont le même numéro :
Code : Tout sélectionner
If OpenWindow(0,0,0,200,100,"button&image",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(0,10,10,50,20,"bouton")
ImageGadget(0,10,30,50,50,0,#PB_Image_Border) ; pb ici > imagegadget a le même numéro que buttongadget
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
- soit tu numérote toi-même tes numéro de gadgets :
Code : Tout sélectionner
#button1 = 0
#imageGadget1 = 1
If OpenWindow(0,0,0,200,100,"button&image",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(#button1,10,10,50,20,"bouton")
ImageGadget(#imageGadget1,10,30,50,50,0,#PB_Image_Border)
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
Code : Tout sélectionner
Enumeration
#button1 ; vaut 0
#imageGadget1 ; vaut 1
EndEnumeration
If OpenWindow(0,0,0,200,100,"button&image",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(#button1,10,10,50,20,"bouton")
ImageGadget(#imageGadget1,10,30,50,50,0,#PB_Image_Border)
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
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