ajout simple

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

ajout simple

Message par jerexgrz »

Lorsque l'on utilise swap, il n'y a rien dans la barre en bas.
On pourrait mettre tout simplement expression 1, expression2. Et comme pour les autres instructions PB, au fur et à mesure que l'on complete la ligne, expression1 devient en gras, ....

Meme chose pour keyboardpushed(), et lorsque l'on doit entrer l'id, si on met un #, alors on a la liste des constantes pour les touches qui s'affichent avec la suppression des mots cles qui ne sont plus pertinants.

ex:
keyboard(#PB_E...) affiche pb_key_e, pb_key_escape, ...

:idea:
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

Quand on utilise la fonction "rechercher/remplacer" dans le menu "edition", ca aurait été bien de pouvoir retrouver les mots-clés dans les procedures/macros aussi. (replier ou pas)

du style:
procedure test()

procedure vb(transmission.l)
test
endprocedure

je recherche "test", mais la recherche n'est pas effectuée dans les procedures.
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

Lorsque l'on execute du code, et que l'on affiche le debuggeur : on peut verifier les valeurs des variables quand on appuye sur le bouton 'variable'. Cependant, qd on referme cette fenetre, et que l'on rappuye sur 'variable' il n'y a plus rien qui apparait (au niveau variables)! et le bouton rafraichir est verrouillé.
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

Dommage qu'une constante ne puisse pas etre declarer avec la fonction rgb, car celle ci retourne une valeur.

ex:
#rouge= rgb(255,0,0)
#bleu = rgb(0,0,255)
:cry:
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

8O surprenant le petit msg :

Code : Tout sélectionner

Structure pt
x.l
y.l
EndStructure

Structure type_exemple
x.l
y.l
sc.pt [99]
stock.l
EndStructure

Global Dim tab.type_exemple (99)

; -----
tab(1)\x = 64
tab(1)\y = 64
tab(1)\stock = 1
tab(1)\sc[1]\x = 80
tab(1)\sc[1]\y = 80

ax = Abs(tab(1)\x - (tab(1)\sc[tab(1)\stock]\x <<5))
ax = Abs(tab(1)\x - (tab(1)\x <<5))
pourtant je n'utilise que des longs ... (entiers)!
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

oui mais la doc dit :
Resultat.f = Abs(Nombre.f)
Description

Renvoie la valeur absolue (non signée) de la valeur flottante spécifiée
ce qui signifie que cette fonction Doit Forcement s'utiliser avec un Flottant !!

c'est en quelque sorte ce que te dit le message d'erreur !!
qui est bien sur Thémé sur les Flottant, puisqu'en principe l'instruction ABS()
s'utilise avec !! :D

rien d'ettonant la dedans :)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

jerexgrz a écrit :Dommage qu'une constante ne puisse pas etre declarer avec la fonction rgb, car celle ci retourne une valeur.

ex:
#rouge= rgb(255,0,0)
#bleu = rgb(0,0,255)
:cry:
Une constante ne peut pas être définie par le résultat d'une fonction, que ce soit RGB() ou une autre.
C'est normal, puisqu'une fonction retourne un résultat différent selon les valeurs des paramètres, et que la valeur d'une constante doit être... constante

Mais rien ne t'empèche de la définir avec une valeur héxa, ce qui revient au même dans ce cas précis.

#rouge = $FF0000
#bleu = $0000FF
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

Justement je pensais definir grace à la fonction rgb(255,0,0) : le rouge.
j'utilise la constante pour garder en permanence ce resultat !

et quand on compile, l'ordi remplace la fonction rgb() etant donné que rgb() retourne un long. Je trouve plus parlant rgb(...) (relecture du code) qu'un chiffre direct. c'est juste une remarque ...

Code : Tout sélectionner

ex: #orange = 38655    ;RGB(255,150,0)
ex: #jaune = 57825     ;RGB(225,225,0)
petite remarque aussi:
#orange$ => ok
global orange$.l => not ok ! (on peut definir une variable string a$ ...)


* a dobro!
effectivement, abs() s'utilise avec des chiffres à virgules. Cependant, si l'on regarde la priorite des parentheses, on doit d'abord executer la multiplication par 32 ( <<32), et apres, ce resultat va ensuite etre traité avec le reste de la parenthese: donc: abs(tab(1)\x-resultat).
J'ai regardé l'ordre de priorité des parentheses dans l'aide, c'est pour ca que je suis surpris !
Aussi, tab(1)\x est un long !

ce code contourne le msg :

Code : Tout sélectionner

f.l = tab(1)\sc[tab(1)\stock]\x << 32
ax= abs(tab(1)\x-f)
donc :?:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

jerexgrz a écrit : * a dobro!
effectivement, abs() s'utilise avec des chiffres à virgules. Cependant, si l'on regarde la priorite des parentheses, on doit d'abord executer la multiplication par 32 ( <<32), et apres, ce resultat va ensuite etre traité avec le reste de la parenthese: donc: abs(tab(1)\x-resultat).
J'ai regardé l'ordre de priorité des parentheses dans l'aide, c'est pour ca que je suis surpris !
Aussi, tab(1)\x est un long !

ce code contourne le msg :

Code : Tout sélectionner

f.l = tab(1)\sc[tab(1)\stock]\x << 32
ax= abs(tab(1)\x-f)
donc :?:
ton code fonctionne parce dans les arguments de la fonction tu a bien installé une variable Flottante !!

alors que tout a l'heure

Code : Tout sélectionner

ax = Abs(tab(1)\x - (tab(1)\sc[tab(1)\stock]\x <<5)) 

le compilateur voit qu'il n'y a pas de chiffre Flottant ni de variables Flottante !!
le chiffre sera flotant seulement apres compillation et execution de la ligne de prg

la verification de ce genre d'erreur, se fait avant la compilation !!
voila le probleme ! :D

d'ailleurs toute les syntax error se font avant de lancer la compillation et l'execution

j'ajoute que le message d'erreur est tres explicite, puisqu'il indique
qu'il ne faut pas user de ">>" et autre" |" , dans l'argument d'une fonction, qui utilise des Flottants ..

je pense qu'il s'agit d'un comportement normal, pas d'un bug ! :?

si d'autre on leur avis, n'hesitez pas ... :)
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

Code : Tout sélectionner

Global Dim struc.l (64)

struc(10) = 10
StrUc(9) = 2
Petite RQ: apparement si on definit tableau, ... ressemblant à une fonction PB, il change son ecriture.

Ici, en faite, struc() ressemble à STRU. Quand on efface par exemple, le "c" de struc(9), pb modifie l'ecriture et met en majuscule le "u".
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

jerexgrz a écrit :

Code : Tout sélectionner

Global Dim struc.l (64)

struc(10) = 10
StrUc(9) = 2
Petite RQ: apparement si on definit tableau, ... ressemblant à une fonction PB, il change son ecriture.

Ici, en faite, struc() ressemble à STRU. Quand on efface par exemple, le "c" de struc(9), pb modifie l'ecriture et met en majuscule le "u".
Oui!... Et alors? 8O

Si tu effaces le "c" de "Struc(9)", tu tombes sur une commande de Pure : StrU(9).
C'est donc normal qu'il modifie l'orthographe du mot. (Et en plus, comme il manque un paramètre, tu devrais avoir un message d'erreur.)
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Chris a écrit :Une constante ne peut pas être définie par le résultat d'une fonction, que ce soit RGB() ou une autre.
y'a tout de même l'exception de Chr(), toujours utile de le savoir

Dri
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

Lorsque l'on affiche plusieurs valeurs dans le debuggeur, si on utilise le bouton "copier", il copie tout le contenu. Je trouve intéressant d'ajouter un bouton pour copier, une seule ligne que l'on a choisi (encadré: qd on clique dessus). Egalement, il serait intéresant d'avoir la possibilité de remplacer le caractère " " par un caractere visible comme celui ci par ex:"¤".
Celà permettrait de visualiser les variables comme celle la:

"bois "
"bois¤"
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

jerexgrz a écrit :Lorsque l'on affiche plusieurs valeurs dans le debuggeur, si on utilise le bouton "copier", il copie tout le contenu. Je trouve intéressant d'ajouter un bouton pour copier, une seule ligne que l'on a choisi (encadré: qd on clique dessus). Egalement, il serait intéresant d'avoir la possibilité de remplacer le caractère " " par un caractere visible comme celui ci par ex:"¤".
Celà permettrait de visualiser les variables comme celle la:

"bois "
"bois¤"
Tu arrives à faire des variables se terminant par un espace, toi? 8O
jerexgrz
Messages : 279
Inscription : dim. 05/juin/2005 20:27

Message par jerexgrz »

:roll: Oups, c'est pas une variable en faite, c'est le resultat contenu (string) dans la variable !! :oops:
Répondre