Page 3 sur 4

Publié : ven. 07/juil./2006 1:57
par Backup
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 :D

Publié : ven. 07/juil./2006 1:58
par Backup
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 ! !! :D

Publié : ven. 07/juil./2006 2:00
par Joubarbe
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 :oops: ?

(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.

Publié : ven. 07/juil./2006 2:04
par Backup
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 :oops: ?

(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 :D

Publié : ven. 07/juil./2006 2:08
par Backup
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 ! :D

Publié : ven. 07/juil./2006 2:11
par Joubarbe
Merci beaucoup. C'est cette déclaration implicite que je n'avais pas saisie :)
Bonne nuit !

Publié : ven. 07/juil./2006 2:11
par Backup
Joubarbe a écrit :Merci beaucoup. C'est cette déclaration implicite que je n'avais pas saisie :)
Bonne nuit !
bye ! :D

Publié : ven. 07/juil./2006 14:29
par Joubarbe
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é...

Publié : ven. 07/juil./2006 14:42
par Anonyme
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.
:wink:

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 

Publié : ven. 07/juil./2006 14:47
par poshu
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é.

Publié : ven. 07/juil./2006 15:19
par Joubarbe
Fiou, je suis idiot parfois, c'est en fait très simple :) Merci !

Publié : ven. 07/juil./2006 21:12
par Joubarbe
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.

Publié : ven. 07/juil./2006 21:21
par Anonyme

Publié : ven. 07/juil./2006 21:29
par Joubarbe
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 !

Publié : sam. 08/juil./2006 13:34
par Joubarbe
Histoire que je comprenne bien tout... Dans le code :

Code : Tout sélectionner

*MemoryID = AllocateMemory(2)

PokeW(*MemoryID,1200)
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 :oops: