Sujets variés concernant le développement en PureBasic
Backup
Messages : 14526 Inscription : lun. 26/avr./2004 0:40
Message
par Backup » ven. 07/juil./2006 1:57
pour desactiver le rapport d'erreur a microsoft tu fait (avec XP)
menu demarer
parametre
panneau de configuration
system
onglé "Avancé"
bouton en bas a droite [Rapport d'erreur]
cliquer sur "Désactiver le rapport d'erreur"
tu ferme tout , c'est bon
Backup
Messages : 14526 Inscription : lun. 26/avr./2004 0:40
Message
par Backup » ven. 07/juil./2006 1:58
Joubarbe a écrit : Oui mais pourquoi ce retour est-il égal à 1 ? Il devrait être égal à 0 et donc provoqué une erreur.
il est egale a 1 parceque la fonction a reussi a ouvrir l'ecran
et initialisé la gestion des sprites !!, bref tout baigne ! !!
Joubarbe
Messages : 93 Inscription : sam. 01/juil./2006 16:40
Message
par Joubarbe » ven. 07/juil./2006 2:00
Ahh, alors (attention !) :
If OpenScreen() = 0
se traduirait plus par "Si je n'arrive pas à ouvrir la fenêtre (alors que je veux le faire !!)" que par "Si la fenêtre n'est pas ouverte" non
?
(Après je vais me coucher promis
)
Edit : ce qui me paraissait logique au début c'était ça :
If OpenScreen(800,600,32) = 0
MessageRequester("Error","Initialisation impossible")
Else OpenScreen(800,600,32)
Endif
(C'est l'esprit
)
Mais je me rends compte que c'est crétin, on ne fait pas une vérification inutile.
Dernière modification par
Joubarbe le ven. 07/juil./2006 2:08, modifié 3 fois.
Backup
Messages : 14526 Inscription : lun. 26/avr./2004 0:40
Message
par Backup » ven. 07/juil./2006 2:04
Joubarbe a écrit : Ahh, alors (attention !) :
If OpenScreen() = 0
se traduirait plus par "Si je n'arrive pas à ouvrir la fenêtre (alors que je veux le faire !!)" que par "Si la fenêtre n'est pas ouverte" non
?
(Après je vais me coucher promis
)
oui tout a fait
If OpenScreen() = 0 = si il y a un problem pour ouvrir l'ecran
tu peut tester le contraire avec :
If OpenScreen()<> 0 = si il n'y a pas eu de problem pour ouvrir l'ecran
Backup
Messages : 14526 Inscription : lun. 26/avr./2004 0:40
Message
par Backup » ven. 07/juil./2006 2:08
Joubarbe a écrit :
If OpenScreen(800,600,32) = 0
MessageRequester("Error","Initialisation impossible")
Else OpenScreen(800,600,32)
Endif
Mais je me rends compte que c'est crétin, on ne fait pas une vérification inutile.
pour reprendre ton exemple
faut faire :
Code : Tout sélectionner
If OpenScreen(800,600,32) = 0
MessageRequester("Error","Initialisation impossible")
Endif
c'est tout !!
car vu que c'est le retour de la fonction qui est testé
cela reviens a dire
si le retour de fonction est egale a 0 alors
execute le contenu de la condition
et affiche le message
SINON (le retour est different de 0)
execute la fonction !!!
et ouvre l'ecran !
Joubarbe
Messages : 93 Inscription : sam. 01/juil./2006 16:40
Message
par Joubarbe » ven. 07/juil./2006 2:11
Merci beaucoup. C'est cette déclaration implicite que je n'avais pas saisie
Bonne nuit !
Backup
Messages : 14526 Inscription : lun. 26/avr./2004 0:40
Message
par Backup » ven. 07/juil./2006 2:11
Joubarbe a écrit : Merci beaucoup. C'est cette déclaration implicite que je n'avais pas saisie
Bonne nuit !
bye !
Joubarbe
Messages : 93 Inscription : sam. 01/juil./2006 16:40
Message
par Joubarbe » ven. 07/juil./2006 14:29
Voilà, je reviens vous ennuyer avec les structures cette fois. J'ai dû mal à tout comprendre. Surtout la commande AddElement puisqu'en écrivant ceci :
Code : Tout sélectionner
InitSprite()
OpenScreen(800,600,32, "Tst")
Structure PersonalInfo
Name.s
Age.b
EndStructure
NewList Gerard.PersonalInfo()
StartDrawing(ScreenOutput())
DrawText(0,100,"Nom : " + Gerard()\Name)
DrawText(0,200,"Age : " + Str(Gerard()\Age))
StopDrawing()
FlipBuffers()
Repeat
ExamineKeyboard()
Until KeyboardReleased(#PB_Key_All)
End
J'eus espéré que cela fonctionnerait. Mais ça aurait été trop simple
Donc je ne comprends pas vraiment où dois-je mettre le AddElement() et son utilité...
Anonyme
Message
par Anonyme » ven. 07/juil./2006 14:42
Voilà pour l'utilisation d'une structure & d'une liste chainée.
N'oublie pas d'initialiser le clavier, affiches tes infos dans la boucle principale.
Code : Tout sélectionner
InitSprite() : InitKeyboard()
OpenScreen(800,600,32, "Tst")
Structure PersonalInfo
Nom.s
Age.l
EndStructure
NewList List.PersonalInfo()
AddElement(List()) ; Tu ajoutes un élément dans la liste list.PersonalInfo()
List()\Nom = "Gerard"
List()\Age = 56
AddElement(List()) ; un deuxieme élément
List()\Nom = "Cpl.Bator"
List()\Age = 23
AddElement(List()) ; un deuxieme élément
List()\Nom = "bob"
List()\Age = 98
Repeat
ExamineKeyboard()
StartDrawing(ScreenOutput())
DrawingMode(#PB_2DDrawing_Transparent)
FrontColor(RGB(255,255,255))
FirstElement(List())
For i = 0 To CountList(List())-1
DrawText(0,20+(i*60),"Nom : " + List()\Nom)
DrawText(0,40+(i*60),"Age : " + Str(List()\Age))
DrawText(0,60+(i*60),"---------------------------")
NextElement(List())
Next i
StopDrawing()
FlipBuffers()
Until KeyboardReleased(#PB_Key_All)
End
poshu
Messages : 1138 Inscription : sam. 31/juil./2004 22:32
Message
par poshu » ven. 07/juil./2006 14:47
Tu crées une liste chaînée. À sa création, elle est vide (bien sûr) or, en ce moment, tu essayes de draw un texte qui n'existe pas. Tu dois addelement() pour créer un élément dans cette liste, puis renseigner cet élément et enfin l'afficher.
Exemple:
Code : Tout sélectionner
InitSprite()
OpenScreen(800,600,32, "Tst")
InitKeyboard()
Structure PersonalInfo
Name.s
Age.b
EndStructure
NewList Gerard.PersonalInfo()
AddElement(Gerard())
Gerard()\Name = "gerard"
Gerard()\Age = 42
StartDrawing(ScreenOutput())
DrawText(0,100,"Nom : " + Gerard()\Name)
DrawText(0,200,"Age : " + Str(Gerard()\Age))
StopDrawing()
FlipBuffers()
Repeat
ExamineKeyboard()
Until KeyboardReleased(#PB_Key_All)
End
Au fait, t'avais oublié le initkeyboard()
Edit: doublé.
Dernière modification par
poshu le ven. 07/juil./2006 17:07, modifié 1 fois.
Joubarbe
Messages : 93 Inscription : sam. 01/juil./2006 16:40
Message
par Joubarbe » ven. 07/juil./2006 15:19
Fiou, je suis idiot parfois, c'est en fait très simple
Merci !
Joubarbe
Messages : 93 Inscription : sam. 01/juil./2006 16:40
Message
par Joubarbe » ven. 07/juil./2006 21:12
Bon alors, j'attaque maintenant les *pointeurs et je ne comprends strictement rien
Du moins, je ne saisis pas trop leur utilité, et c'est souvent difficile de comprendre une fonction sans un exemple précis. Pour le moment, je l'assigne à un label tout en sachant que ce n'est pas du tout le cas... Si une âme généreuse pouvait m'éclairer (une nouvelle fois), merci.
Anonyme
Message
par Anonyme » ven. 07/juil./2006 21:21
Joubarbe
Messages : 93 Inscription : sam. 01/juil./2006 16:40
Message
par Joubarbe » ven. 07/juil./2006 21:29
Hmm oui pardon, j'ai tendance à ne pas assez rechercher
Surtout avec une bonne équipe comme la vôtre ; je vais lire tout ça merci !
Joubarbe
Messages : 93 Inscription : sam. 01/juil./2006 16:40
Message
par Joubarbe » sam. 08/juil./2006 13:34
Histoire que je comprenne bien tout... Dans le code :
J'utilise un pointeur plutôt qu'une variable car seul le pointeur est apte à manipuler la mémoire ? Admettons que je dise vrai
, J'utilise un PokeW pour écrire sur un Word mais comment fais-je pour écrire à nouveau sur *MemoryID alors qu'il vaut maintenant 1200 ?
Et enfin, le pointeur est en fait surtout (seulement ?) utile pour manipuler la mémoire.. ?
Désolé si j'en choque certains, je suis vraiment débutant