Problème d'affichage avec buttonimageGadget
Problème d'affichage avec buttonimageGadget
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
****************** 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
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Est ce que tu as une diskette dans ton lecteur a: et/ou as tu un image sur cette diskette ?
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
buttonimagegadget pb d'affichage
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

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

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

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