Page 1 sur 1
Problème d'affichage avec buttonimageGadget
Publié : ven. 17/déc./2004 12:20
par Patix
Le code :
****************** Prog ne fonctionne pas
If OpenWindow(1, 100, 200, 210, 314,#PB_Window_SystemMenu, "Window 1") And CreateGadgetList(WindowID(1))
UseJPEGImageDecoder()
If LoadImage(70, "a:\terremeca2.jpg")
ButtonImageGadget(56, 1, 1, 20, 20, UseImage(70))
; ImageGadget(7, 1,1,50,50,UseImage(70))
EndIf
Delay (8000)
CloseWindow(1)
EndIf
If OpenWindow(2, 100, 200, 195, 260, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget|#PB_Window_ScreenCentered, "PureBasic Window2")
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_CloseWindow ; If the user has pressed on the close button
Quit = 1
EndIf
Until Quit = 1
EndIf
End
************
Dans ce petit prog : Imagegadget affiche l'image mais pas buttonimagegadget et je ne comprends pas.
j'ai fait un autre bout de code ou cela fonctionne .
************* prog fonctionne
If OpenWindow(0,0,0,120,100,#PB_Window_BorderLess|#PB_Window_ScreenCentered,"ButtonImage") And CreateGadgetList(WindowID(0))
UseJPEGImageDecoder()
If LoadImage(0, "a:\terremeca2.jpg")
ButtonImageGadget(0,1,1,119,99,UseImage(0))
EndIf
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
*************
Si quelqu'un peut me donner la soluce, je suis preneur.
Patix
Publié : ven. 17/déc./2004 12:24
par Progi1984
Est ce que tu as une diskette dans ton lecteur a: et/ou as tu un image sur cette diskette ?
buttonimagegadget pb d'affichage
Publié : ven. 17/déc./2004 14:02
par Patix
bien sur qu'il y a tout ce qu'il faut ou il faut

.
J'ai du une erreur dans la syntaxe qqe part ou une érreur d'écriture mais je ne vois pas ou.
Dans le cas qui m'interesse, ça ne marche pas.
Et quand je fais un essai sur une portion de code ça marche.
comprend pas

Publié : ven. 17/déc./2004 14:22
par Chris
J'ai pas compris ton problème, là.
Par contre, ton image et ton bouton s'affichent au même endroit sur la fenêtre.
Code : Tout sélectionner
If OpenWindow(1, 100, 200, 210, 314,#PB_Window_SystemMenu, "Window 1") And CreateGadgetList(WindowID(1))
UseJPEGImageDecoder()
If LoadImage(70, "D:\PureBasic\Compilers\Open.bmp")
ButtonImageGadget(56, 1, 1, 20, 20, UseImage(70))
ImageGadget(7, 1,1,50,50,UseImage(70))
EndIf
; Delay (8000)
; CloseWindow(1)
Repeat
Until WaitWindowEvent() = #PB_EventCloseWindow
EndIf
Publié : ven. 17/déc./2004 14:47
par Chris
D'abord, on n'utilise pas un Delay() pour temporiser ce genre de boucle.
Le delay te stoppe l'execution du programme, et donc, le rafraichissement de la fenêtre.
Code : Tout sélectionner
If OpenWindow(1, 100, 200, 210, 314,#PB_Window_SystemMenu, "Window 1") And CreateGadgetList(WindowID(1))
UseJPEGImageDecoder()
If LoadImage(70, "D:\PureBasic\Compilers\Open.jpg")
ImageGadget(7, 1,1,50,50,UseImage(70))
ButtonImageGadget(56, 1, 1, 20, 20, UseImage(70))
Start = ElapsedMilliseconds()
EndIf
; Delay (8000)
; CloseWindow(1)
; Solution 1
; Repeat
; Until ElapsedMilliseconds()- Start >= 8000 Or WindowEvent() = #PB_EventCloseWindow
;Solution 2
Repeat
If ElapsedMilliseconds()- Start >= 8000
CloseWindow(1)
EndIf
Until WindowEvent() = #PB_EventCloseWindow
End
EndIf
buttonimagegadget et delay
Publié : ven. 17/déc./2004 15:04
par Patix
En fait je veux faire apparaitre une fenêtre avec image et bordure sans la barre de fenêtre. Et ensuite la fenêtre se ferme toute seule.
Donc je pensais créer une fenêtre sans bordure. Lui mettre par dessus un
bouton image. Et ensuite faire disparaitre la fenêtre grace à delay().
Je viens de m'apercevoir que la fonction delay() prend le pas sur l'apparition du bouton.
Quelle méthode serait à utiliser pour qu'une fenêtre apparaisse ss barre avec image et qu'elle se ferme seule.
Style ce que l'on voit quand on lance certain prog.
suis je plus clair ?

Publié : ven. 17/déc./2004 15:11
par Chris
Code : Tout sélectionner
If OpenWindow(1, 100, 200, 210, 314,#PB_Window_BorderLess|#WS_BORDER , "Window 1") And CreateGadgetList(WindowID(1))
UseJPEGImageDecoder()
If LoadImage(70, "D:\PureBasic\Compilers\Open.jpg")
ButtonImageGadget(56, 1, 1, 20, 20, UseImage(70))
ImageGadget(7, 1,1,50,50,UseImage(70))
Start = ElapsedMilliseconds()
EndIf
Repeat
If WindowEvent() = 0 : Delay(20) : EndIf
Until ElapsedMilliseconds() -Start >= 8000
CloseWindow(1)
End
EndIf
Sinon, tu peux utiliser #WS_DLGFRAME à la place de #WS_BORDER
Publié : ven. 17/déc./2004 16:08
par Patix
Merci pour tes réponses rapides.
Maintenant je suis bloqué, je pense par l'utilisation de la version démo qui n'accepte pas la variable #WS_BORDER.
Donc comme j'ai commandé Purebasic, je vais attendre son arrivée.

Publié : ven. 17/déc./2004 16:13
par Chris
Ah oui, si tu as la version de démo de Pure, pas de constantes ou de fonctions provenant de l'Api.
Mais tu ne perdras rien à l'acheter, il est vraiment super ce langage
En attendant, tu peux toujours retirer le #WS_BORDER.
Sinon, tu peux faire une fenêtre sans bordure, et ajouter un ContainerGadget() qui couvre toute la surface, avec l'option #PB_Container_Raised.
Code : Tout sélectionner
If OpenWindow(1, 100, 200, 210, 314,#PB_Window_BorderLess , "Window 1") And CreateGadgetList(WindowID(1))
UseJPEGImageDecoder()
If LoadImage(70, "D:\PureBasic\Compilers\Open.jpg")
ContainerGadget(100, 0, 0, 210, 314, #PB_Container_Raised)
ButtonImageGadget(56, 1, 1, 20, 20, UseImage(70))
ImageGadget(7, 1,1,50,50,UseImage(70))
CloseGadgetList()
Start = ElapsedMilliseconds()
EndIf
Repeat
If WindowEvent() = 0 : Delay(20) : EndIf
Until ElapsedMilliseconds() -Start >= 8000
CloseWindow(1)
End
EndIf
Publié : ven. 17/déc./2004 16:27
par Patix
Merci, c'est mieux pour moi.
