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:

Code : Tout sélectionner

If IsGif=#True And EventTimer() = MDIWindow()\Window
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/ :P

:wink:

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:

Code : Tout sélectionner

Debug "Table cree"

Debug "Table créée"
PS. J'ajouterais bien aussi un CloseDatabase(0) à la fin de l'exemple histoire de prendre les bonnes habitudes.

:wink:

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
:wink:

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érer 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...)

:wink:

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 :

Code : Tout sélectionner

Structure sSection
      Array Gadget.i(10)
EndStructure
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 :D.

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 :roll:

J'veux dire dans la vraie vie quoi 8)
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 ! :lol:

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. :mrgreen:


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 :P ...

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.