Page 20 sur 42

Publié : mer. 14/juin/2006 18:38
par Flype
Suite à ce post - http://purebasic.forum-gratuit.com/view ... highlight= - je me suis dit :

Ce serait pas mal qu'une fois la doc fr terminée, que quelqu'un traduise la doc en PDF. Ca permettrait d'avoir un bÔ manuel, prêt à imprimer.
Si je trouve le courage, je le ferais.

Qu'en pensez-vous ?

[EDIT]
Je vais voir si je peux pas faire un générateur automatique qui prendrais le source du CHM vers PDF ( pour éviter d'avoir à mettre à jour et le CHM et le PDF à la main ).

Publié : mer. 14/juin/2006 18:56
par Dr. Dri
Ca c'est une idée! Une version imprimable de l'aide!

Dri +1 :D

Publié : mer. 14/juin/2006 19:56
par Flype
au fait,
où puis-je télécharger les sources de la doc, déjà ?

Publié : mer. 14/juin/2006 20:25
par comtois
Flype a écrit :au fait,
où puis-je télécharger les sources de la doc, déjà ?
Il y a un accès anonyme pour le cvs public (lecture seule). Pour l'accès en anonymous:

le CVSROOT:
:pserver:anonymous@alphasnd.dyndns.org:/home/cvs/Public

le module: Documentation

Les fichiers sont au format docmaker. Fred recommande TortoiseCVS pour acceder au CVS sous Windows, c'est le plus intégré.

[EDIT]
Bon je n'ai pas trop de courage ce soir pour faire de la doc, je voulais en faire une petite demi heure mais c'est déjà trop par ces températures :)

Publié : mer. 14/juin/2006 20:54
par comtois
Je lis l'allemand avec google alors je ne suis pas sûr , mais il me semble qu'André parle de mettre la doc au format PDF sur purearea.net

Vu ici


Il a peut-être déjà fait une moulinette ?

Publié : mer. 14/juin/2006 21:33
par comtois
Je viens de voir un complément d'info possible pour les pointeurs
Freak a écrit :The "String" structure looks like this:
Code:
Structure String
s.s
EndStructure


So when doing *Struct.String, you actually have a pointer (the structure pointer)
to a pointer (the s.s) to a string (the actual data)
Doing "@String$" however returns the pointer to the actual data.
This is a fundamental difference to the other basic types, where the variable data
is actually stored inside the structure, and that is why it will not work with strings.

This one illustrates it:
Code:
String$ = "Hello World"
*Pointer = @String$ ; get pointer to string data
*Struct.String = @*Pointer ; get pointer to pointer to string data
Debug *Struct\s ; now it displays


The best solution to this problem really depends on what you need to do with the string.

If you need to compare the string data to something else, the best thing
is to use commands like CompareMemoryString()/MemoryStringLength(),
which can operate on pointers, so you have no overhead at all.

If what you need is to copy the string from the pointer into a normal
PB variable, PeekS() is a good thing to use, as it is almost as fast as
a normak string copy like "a$ = b$".
Vu ici

Faudra que je prenne le temps de lire la suite du post , y'a peut-être des infos intéressantes à placer dans la doc ?

Publié : mer. 14/juin/2006 23:23
par Jacobus
Ce serait pas mal qu'une fois la doc fr terminée, que quelqu'un traduise la doc en PDF
Je viens de faire un essai, ça a pris 2 minutes pour transformer le manuel en PDF... 433 pages et près de 3 Mo quand même :?

Publié : mer. 21/juin/2006 19:32
par comtois
Ajout de l'aide d'une fonction OnErrorExit(), en anglais :
@Function OnErrorExit()

@Description
If an error occurs, a requester with a general error message will be showed
and your program will be safely terminated.
@LineBreak
@LineBreak
Example:
@Code
; Please disable PB Debugger for testing, else the error will already
; be catched by the debugger!

OnErrorExit()
Null = 0
Result = 123 / Null ; division by 0 will generate an error

; The following code will never be executed, because of the error before
MessageRequester("Information!", "This will never be executed!")
@EndCode

Et j'ai traduit comme ça, vous pouvez corriger :)
@Function OnErrorExit()

@Description
Si une erreur se produit, un message d'erreur général
sera affiché et votre programme se terminera correctement.
@LineBreak
@LineBreak
@Example
@Code
; Dévalidez le débogueur pour tester sinon c'est lui qui traitera l'erreur!

OnErrorExit()
Null = 0
Result = 123 / Null ; La division par zéro génère une erreur

; Le code suivant ne sera jamais exécuté à cause de l'erreur précédente
MessageRequester("Information!", "Ceci ne sera jamais exécuté!")
@EndCode

Publié : mer. 21/juin/2006 19:52
par Dräc
Pour "will be safely terminated" j'ai hésité avec "se terminera en toute sécurité".
L'idée, par rapport à "correctement", c'est que justement la programmation n'est pas correcte.
comtois a écrit : Et j'ai traduit comme ça, vous pouvez corriger :)
@Function OnErrorExit()

@Description
Si une erreur se produit, un message d'erreur général
sera affiché et votre programme se terminera proprement.
@LineBreak
@LineBreak
@Example
@Code
; Désactivez le débogueur pour tester sinon c'est lui qui traitera l'erreur!

OnErrorExit()
Null = 0
Result = 123 / Null ; La division par zéro génère une erreur

; Le code suivant ne sera jamais exécuté à cause de l'erreur précédente
MessageRequester("Information!", "Ceci ne sera jamais exécuté!")
@EndCode

Publié : mer. 21/juin/2006 20:00
par comtois
oui j'ai hésité aussi :)
Ok je prends tes remarques en compte.


Sinon pour info , il y a une petite correction pour
MovieAudio()
Balance peut avoir une amplitude de -100 à 100 (-100 étant le plus à gauche et 100 le plus à droite).
Et je suis en train de regarder les autres corrections.

Publié : ven. 23/juin/2006 17:17
par nico
Comtois,

En voulant utiliser le Gadget MDI, j'ai eu quelques problèmes à cause de la doc qui n'est pas précise:

AddGadgetItem(#Gadget, Position, Texte$ [, ImageID [, Options]])

Ici Position correspond à l'index de la nouvelle fenêtre créée; ça devrait être spécifié.

De plus, il est nullement dit comment fermer une fenêtre du Gadget MDI, bien sûr la commande est CloseWindow mais ça aurait pu être autre chose, en tout cas ce n'est pas spécifié. Surtout que CloseWindow est une commande Window se situant dans une autre rubrique.

Sinon je trouve la description de cette commande incomplète:
Fenetre = EventWindow()

Je vois ça, je me suis dit qu'il retourne un Handle alors que c'est un Id.


D'une manière générale, j'ai toujours été ennuyé avec les id de Pure, une fois c'est l'Id qu'il faut prendre pour une commande et pour d'autre faut le Handle.

Voilà, je te dis les problèmes que j'ai eu, si ça peux t'aider à rendre la doc plus claire.

Publié : ven. 23/juin/2006 17:35
par nico
Les exemples fournis dans la doc sont vraiment incomplets, je veux bien t'aider à en faire si tu penses que c'est mieux, dis moi lesquels je dois reprendre.

:)

Publié : ven. 23/juin/2006 18:22
par comtois
nico a écrit :AddGadgetItem(#Gadget, Position, Texte$ [, ImageID [, Options]])

Ici Position correspond à l'index de la nouvelle fenêtre créée; ça devrait être spécifié.
Je suis le moins qualifié pour parler de cette bibliothèque, je ne peux faire que le secrétaire pour les corrections que vous proposerez :)

C'est pourquoi j'ai besoin que vous me disiez exactement quelle phrase corriger ou ajouter.
Ensuite j'attends un peu , pour laisser le temps à d'autres d'intervenir, s'il y a consensus , je prends en compte la modif, s'il y a le moindre doute, il faut en parler à Fred , ou faire un post sur le forum anglais pour avoir confirmation avant de modifier la doc.

Pour en revenir à ta remarque , dans la doc il y a ça :
AddGadgetItem()

Pour le MDIGadget() le paramètre 'Position' indique le numéro de la #Fenetre pour la nouvelle fenêtre MDI. #PB_Any peut être utilisé, auquel cas la valeur de retour sera le nouveau numéro défini automatiquement par PureBasic. Le paramètre 'Options' peut servir à spécifier les options de la nouvelle fenêtre MDI (voir OpenWindow()). Les constantes #PB_Window_BorderLess, #PB_Window_ScreenCentered et #PB_Window_WindowCentered ne sont pas supportées par les fenêtre MDI.


Que faut-il corriger ?
De plus, il est nullement dit comment fermer une fenêtre du Gadget MDI, bien sûr la commande est CloseWindow mais ça aurait pu être autre chose, en tout cas ce n'est pas spécifié. Surtout que CloseWindow est une commande Window se situant dans une autre rubrique.
Il y a ça dans l'aide :

Quand la commande AddGadgetItem() est utilisée avec ce gadget, l'élément créé est en fait une nouvelle fenêtre. Ainsi, toutes les commandes de la bibliothèque 'Fenêtre' sont disponibles pour gérer cette nouvelle fenêtre (sauf StickyWindow()).

Alors pour commencer je vais mettre le nom de la biliothèque 'Window' avec un lien. Et dites moi clairement ce qu'il faudrait ajouter.
Sinon je trouve la description de cette commande incomplète:
Fenetre

Je vois ça, je me suis dit qu'il retourne un Handle alors que c'est un Id.
Dans l'aide anglaise c'est WindowNumber = EventWindow()
Alors je vais mettre NumeroFenetre = EventWindow()


D'une manière générale, j'ai toujours été ennuyé avec les id de Pure, une fois c'est l'Id qu'il faut prendre pour une commande et pour d'autre faut le Handle.
Ben quand tu vois des trucs pas clair comme ça ,n'hésite pas à les lister ici.

Publié : ven. 23/juin/2006 18:32
par comtois
nico a écrit :Les exemples fournis dans la doc sont vraiment incomplets, je veux bien t'aider à en faire si tu penses que c'est mieux, dis moi lesquels je dois reprendre. :)
Ben ceux que tu trouves incomplets :)

Pour l'instant je n'en ai pas créé , enfin seulement pour le FillArea, sinon c'est les exemples de la doc anglaise.
Si tu trouves qu'il en manque ou qu'ils sont incomplets, propose quelque chose. Dans l'aide l'exemple doit être court et le plus simple possible.

Publié : ven. 23/juin/2006 18:41
par nico
J'ai surement survolé l'aide mais il y a les habitudes aussi, en général un identifiant dans l'aide à un # qui le repère.
Alors je vais mettre NumeroFenetre = EventWindow()
Oui c'est bien

Alors pour commencer je vais mettre le nom de la biliothèque 'Window' avec un lien. Et dites moi clairement ce qu'il faudrait ajouter.
- CountGadgetItems(): Renvoie le nombre de fenêtres fille.
- AddGadgetItem(): Crée une nouvelle fenêtre fille.
- ClearGadgetItemList(): Ferme toutes les fenêtres filles.
- GetGadgetState(): Renvoie l'identifiant de la fenêtre fille active.
- SetGadgetState(): Change la fenêtre fille active ou ré-arrange la disposition des fenêtres filles (voir GetGadgetState()).
- SetGadgetAttribute(): Avec une des constantes suivantes:

Ce serait bien de mentionner la commande ici


Pour ce qui est de Position, c'est vrai que c'est expliqué mais le terme ne correspond pas, c'est un identifiant.