Page 14 sur 19
Re: [AIDE PUREBASIC] Mises à jour.
Publié : lun. 08/mai/2017 15:38
par Marc56
L'exemple fourni pour les applications MDI a été mis à jour pour afficher les images GIF (bonne idée)
Il fonctionne très bien, mais n'a pas pris en compte les GIF
non-animés (et dans ce cas il plante)
La page dans la doc:
https://www.purebasic.com/french/docume ... er.pb.html
Je propose cette correction (ligne 143)
Remplacer:
Par:
Code : Tout sélectionner
If IsGif=#True And EventTimer() = MDIWindow()\Window And ImageFrameCount(MDIWindow()\Image) <> 1
(Un peu moche, je n'aime pas les successions de And mais ça fonctionne, cependant il y a peut-être une meilleure façon de faire?)
Pour des images GIF non-animées, prenez par exemple l'indispensable Dilbert
http://dilbert.com/

Re: [AIDE PUREBASIC] Mises à jour.
Publié : lun. 22/mai/2017 8:28
par Marc56
Coquille:
https://www.purebasic.com/french/docume ... abase.html
(et dans le .CHM)
Dans l'exemple:
PS. J'ajouterais bien aussi un
CloseDatabase(0) à la fin de l'exemple histoire de prendre les bonnes habitudes.

Re: [AIDE PUREBASIC] Mises à jour.
Publié : mar. 23/mai/2017 10:18
par Mesa
@Marc56: GIF et table modifiés dans le svn. Les modifs seront visibles dans la prochaine maj de PB.
M.
Re: [AIDE PUREBASIC] Mises à jour.
Publié : ven. 26/mai/2017 16:18
par Marc56
Une coquille (ou un reste d'une ancienne définition ?)
(PB 5.44 LTS et 5.60)
L'exemple donné pour la fonction
ReadFile() donne une définition ambiguë pour
CreateFile()
(Pour
CreateFile() si le fichier existe, il n'est pas ouvert mais remplacé)
Code : Tout sélectionner
If CreateFile(0, "Test.txt") ; Ouvre un fichier existant ou en crée un nouveau s'il n'existait pas
Pourrait être:
Code : Tout sélectionner
If CreateFile(0, "Test.txt") ; Créé un nouveau fichier vide s'il n'existait pas ou le remplace s'il existe

Re: [AIDE PUREBASIC] Mises à jour.
Publié : ven. 30/juin/2017 9:34
par Marc56
(une coquille dans la doc Fr (en ligne et .chm)) PB 5.60
sur
BindGadgetEvent()
Remarques
D'ordinaire, les évènements sont gér
er avec les fonctions
(sont gérés)
Re: [AIDE PUREBASIC] Mises à jour.
Publié : sam. 01/juil./2017 17:26
par Marc56
Les définitions des type de variables sont parfois imprécises (imho)
Je proposerais bien ceci en résumé quelque part dans la doc ?
- Global: Déclarable partout et accessible partout.
- Shared: Déclarable dans une procédure, accessible dans la procédure où elle a été déclarée et dans le code principal mais pas dans les autres procédures.
- Protected: Déclarable dans une procédure, accessible uniquement dans la procédure où elle a été déclarée.
- Static: Déclarable dans une procédure, accessible uniquement dans la procédure où elle a été déclarée. Conserve sa valeur à l'appel suivant.
(le choix des mots n'est peut-être pas idéal. À voir...)

Re: [AIDE PUREBASIC] Mises à jour.
Publié : lun. 28/août/2017 7:59
par blendman
Salut
Dans la rubrique structure, il n'y a pas d'exemple pour montrer clairement comment déclarer un tableau dynamique dans une structure :
Et qu'ensuite, on peut le redimensionner dynamiquement
Exemple :
Code : Tout sélectionner
Structure sSection
Array Gadget.i(0)
EndStructure
Section.sSection
Section\Gadget(0) = 123
ReDim Section\Gadget.i(10)
Section\Gadget(10) = 10
Je pense que ce serait bien que ça y figure car c'est important.
Re: [AIDE PUREBASIC] Mises à jour.
Publié : ven. 01/sept./2017 10:03
par blendman
Salut
une autre chose que je viens de découvrir : on peut mettre comme argument d'une procédure une autre procédure (si elle a une valeur de retour) !
Punaise, c'est énorme, ça devrait être indiqué dans la doc :
exemple :
Code : Tout sélectionner
Procedure handleError(value, text.s = "Unknown Error.")
; by demivec
If value = 0
MessageRequester("Error", text)
End
EndIf
EndProcedure
handleError(OpenWindow(0, 0, 0, 800, 600, "Procedure argument in procedure",
#PB_Window_SystemMenu | #PB_Window_ScreenCentered), "Can't open window.")
Repeat
event = WindowEvent()
Select event
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Hou, mais pinaise, c'est cool

.
Re: [AIDE PUREBASIC] Mises à jour.
Publié : dim. 10/sept./2017 15:35
par blendman
salut
pour point()
on a ceci comme info :
Les coordonnées X, Y doivent être obligatoirement à l'intérieur de la surface de dessin, car il n'y a pas de contrôle pour des raisons de rapidité.
OutputWidth() et OutputHeight() peuvent être utilisés pour cela.
Il serait intéressant de préciser ceci :
Attention X doit être strictement inférieur à OutputWidth(), et Y doit être strictement inférieur à OutputHeight().

Re: [AIDE PUREBASIC] Mises à jour.
Publié : dim. 10/sept./2017 16:54
par Shadow
Oui, c'est d’ailleurs chiant et pas logique pour moi...
Un pixel ça commence à 1, pas 0
J'veux dire dans la vraie vie quoi
Tien mat George, le pixel 0 sur la photo !
Hein ?!!!! mais il existe pas ton pixel 0, tu veux dire le 1 ?
Non non, le pixel 0 !
Celui qui n'est pas sur la photo donc !
Je pense qu'on par de zéro à cause d'une histoire de tableau qui eux aussi commence à 0.
Et ça créer pas mal de confusion...
Donc on commence toujours à 0 et pas 0 et on dois être inférieur -1 à la largeur et hauteur de l'image !
Modération : Sera nettoyé.
Re: [AIDE PUREBASIC] Mises à jour.
Publié : dim. 10/sept./2017 17:01
par falsam
Shadow a écrit :Un pixel ça commence à 1, pas 0
C'est une question de convention. l'indice d'un tableau commence lui aussi à 0.
Shadow a écrit :Tien mat George, le pixel 0 sur la photo !
Hein ?!!!! mais il existe pas ton pixel 0, tu veux dire le 1 ?
Non non, le pixel 0 !
Celui qui n'est pas sur la photo donc !
Tu dois bien être le seul à tenir des propos comme ça.
Modération : Sera nettoyé.
Re: [AIDE PUREBASIC] Mises à jour.
Publié : dim. 10/sept./2017 17:20
par SPH
...ce qu'il faut pas lire parfois

...
Re: [AIDE PUREBASIC] Mises à jour.
Publié : dim. 10/sept./2017 18:00
par Zorro
je trouve quil serai bien que les exemples de la doc
utilise des Constantes , et pas des index numéroté
un debutant qui regarde un code avec la fenetre=0 le gadget =0
ne peut pas comprendre grand chose !
[Atari ST ON]
(on a l'impression de revenir au Ressources faite pour le GEM )
[Atari ST OFF]
Re: [AIDE PUREBASIC] Mises à jour.
Publié : dim. 10/sept./2017 18:22
par GallyHC
Bonjour,
Shadow> je penses que tu as un gros problème avec une base de l'informatique et donc de la programmation, et c'est la mémoire (la ou l'on stock tout, la base en fait), déjà la mémoire est linaire.
Une image est stocker dans une partie mémoire a "xxxx" en RGB, donc si je veux lire le premier point (en gros), cela donne : "R = xxxx + 2 ", "G = xxxx + 1" et "B = xxxx + 0". si je ne me trompe pas la formule exacte pour connaitre un point est "Base_Memory = (X + (Height - Y) * Width) * 3" (* 3 car RGB).
Cordialement,
GallyHC
Re: [AIDE PUREBASIC] Mises à jour.
Publié : dim. 10/sept./2017 20:39
par G-Rom
"Base_Memory = (X + (Height - Y) * Width) * 3" (* 3 car RGB).
Non.
"Base_Memory = ((X*3) + width * (Y*3))
Oui.

3 pour rgb, 4 pour rgba.