Page 1 sur 1

Un petit prog pour 3 questions

Publié : jeu. 21/juil./2005 20:08
par Patix
Voici une petit programme pour trois questions :

******************************
Enumeration

; Menus
#m_principal: #m_fichier: #m_ouvrir: #m_quitter: #m_aide: #m_apropos

EndEnumeration


If CreateImage(8, 495, 600)

StartDrawing(ImageOutput())

DrawingMode(1)


Box(0,0,495,600,RGB(200,200,200))

; Ligne horizontale
Line(0,29,494,0 , RGB(0,0,0))

; Lignes verticales grille
Line(43,0,0,600 , RGB(0,0,0)):Line(88,0,0,600 , RGB(0,0,0)):Line(133,0,0,600 , RGB(0,0,0)):Line(178,0,0,600 , RGB(0,0,0))
Line(223,0,0,600 , RGB(0,0,0)):Line(268,0,0,600 , RGB(0,0,0)):Line(313,0,0,600 , RGB(0,0,0)):Line(358,0,0,600 , RGB(0,0,0))
Line(403,0,0,600 , RGB(0,0,0)):Line(448,0,0,600 , RGB(0,0,0)):Line(492,0,0,600 , RGB(0,0,0))

StopDrawing()
EndIf


If CreateImage(111, 495, 30)

StartDrawing(ImageOutput())

DrawingMode(1)


Box(0,0,495,30,RGB(255,255,255))

Locate(5, 7)
FrontColor(0,0,0) ; print the text to white !
DrawText("Nuance1...")

StopDrawing()
EndIf

If CreateImage(112, 495, 30)

StartDrawing(ImageOutput())

DrawingMode(1)

;Box(x, y, Largeur, Hauteur [, Couleur])
Box(0,0,495,30,RGB(255,255,191))

Locate(5, 7)
FrontColor(0,0,0) ; print the text to white !
DrawText("Nuance1...")

StopDrawing()
EndIf


If CreateImage(113, 495, 30)

StartDrawing(ImageOutput())

DrawingMode(1)


Box(0,0,495,30,RGB(255,222,149))

Locate(5, 7)
FrontColor(0,0,0) ; print the text to white !
DrawText("Nuance1...")

StopDrawing()
EndIf


; ******************** PROG PRINCIPAL ********************************************************************

If OpenWindow(0,0,0,780,580,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Exemple") And CreateGadgetList(WindowID(0))
If CreateMenu(#m_principal, WindowID()) ; here the menu creating starts....
MenuTitle("&Fichier")
; MenuBar() ; here the separator bar will be inserted
MenuItem(#m_quitter, "&Quitter")
MenuTitle("Aide") ; Titre avec une lettre soulignée. Le trait souligné n'apparaitra que
; si le menu est appelé avec F10 ou ALT.
MenuItem(#m_aide, "&Mode d'emploi")
MenuItem(#m_apropos, "A propos")
EndIf


PanelGadget(0,15,80,750,470)


AddGadgetItem (0,0,"Onglet1 ")
ScrollAreaGadget(11, 10, 70,514,350, 494, 600, 30,#PB_ScrollArea_Flat)
;DrawImage(ImageID, x, y [, Largeur, Hauteur])
; ImageGadget(605,0,0,400,500,UseImage(15))
;; ButtonGadget (1, 10, 10,230, 30,"Button 1",#PB_Button_Left)
;; ButtonGadget (2, 50, 50,230, 30,"Button 2",#PB_Button_Right)
;; ButtonGadget (3, 90, 90,100, 30,"Button 3, c'est le plus long",#PB_Button_MultiLine)
ImageGadget(600,1,1,100,30,UseImage(8))
ButtonImageGadget(1,1,1,100,30,UseImage(111))
ButtonImageGadget(2,101,60,100,30,UseImage(112))
ButtonImageGadget(9997,1,31,130,30,UseImage(113))


;; TextGadget (4,110,115,230, 20,"This is the content of a ScrollAreaGadget!",#PB_Text_Right);
CloseGadgetList()


Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadgetID()
Case 1
MessageRequester("Info","Le bouton 1 a été pressé !",#PB_MessageRequester_Ok)
Case 2
MessageRequester("Info","Le bouton 2 a été pressé !",#PB_MessageRequester_Ok)
Case 3
MessageRequester("Info","Le bouton 3 a été pressé !",#PB_MessageRequester_Ok)
EndSelect
EndSelect
ForEver
EndIf
***************************************

1 - J'ai créé des images couleur pour des boutons. Ces boutons varieront de taille donc j'ai créé des couleurs au format maxi. Mon problème c(est que le texte disparait si la couleur n'est pas à la taille du bouton.
Y a t'il une solution ?

2 - J'ai créé une grille en image pour l'installer dans le ScrollAreaGadget . Je mets les boutons et ceux-ci ne fonctionnent plus. :-(
J'ai pensé au callback mais je ne comprend rien au principe.

3 - Est il possible d'augmenter l'épaisseur d'un onglet ?

Ben voila, si quelqu'un peut m'aider :-)

Publié : jeu. 21/juil./2005 21:24
par Sehka
Salut Patix,
J'ai voulu tester ton programme mais j'ai une erreur à la ligne 104
ImageGadget(600,1,1,100,30,UseImage()
Corrige et poste une nouvelle version :wink:
@Bientôt

Sehka

Publié : jeu. 21/juil./2005 21:45
par Le Soldat Inconnu
1) Il vaut refaire l'image a chaque fois que tu change la taille du bouton

2) on ne peut pas superposer des gadgets ! ça fait n'importe quoi, valable également pour les images, à toi de découper les images pour avoir des trous pour tes boutons, ou alors, gérer le dessin du fond du scrollgadget via un callback

3) Je dirais que non


Le code sans erreur de compilation

Code : Tout sélectionner

Enumeration
  
  ; Menus
  #m_principal : #m_fichier : #m_ouvrir : #m_quitter : #m_aide : #m_apropos
  
EndEnumeration


If CreateImage(8, 495, 600)
  
  StartDrawing(ImageOutput())
    
    DrawingMode(1)
    
    
    Box(0, 0, 495, 600, RGB(200, 200, 200))
    
    ; Ligne horizontale
    Line(0, 29, 494, 0, RGB(0, 0, 0))
    
    ; Lignes verticales grille
    Line(43, 0, 0, 600, RGB(0, 0, 0)) : Line(88, 0, 0, 600, RGB(0, 0, 0)) : Line(133, 0, 0, 600, RGB(0, 0, 0)) : Line(178, 0, 0, 600, RGB(0, 0, 0))
    Line(223, 0, 0, 600, RGB(0, 0, 0)) : Line(268, 0, 0, 600, RGB(0, 0, 0)) : Line(313, 0, 0, 600, RGB(0, 0, 0)) : Line(358, 0, 0, 600, RGB(0, 0, 0))
    Line(403, 0, 0, 600, RGB(0, 0, 0)) : Line(448, 0, 0, 600, RGB(0, 0, 0)) : Line(492, 0, 0, 600, RGB(0, 0, 0))
    
  StopDrawing()
EndIf


If CreateImage(111, 495, 30)
  
  StartDrawing(ImageOutput())
    
    DrawingMode(1)
    
    
    Box(0, 0, 495, 30, RGB(255, 255, 255))
    
    Locate(5, 7)
    FrontColor(0, 0, 0) ; print the text to white !
    DrawText("Nuance1...")
    
  StopDrawing()
EndIf

If CreateImage(112, 495, 30)
  
  StartDrawing(ImageOutput())
    
    DrawingMode(1)
    
    ; Box(x, y, Largeur, Hauteur [, Couleur])
    Box(0, 0, 495, 30, RGB(255, 255, 191))
    
    Locate(5, 7)
    FrontColor(0, 0, 0) ; print the text to white !
    DrawText("Nuance1...")
    
  StopDrawing()
EndIf


If CreateImage(113, 495, 30)
  
  StartDrawing(ImageOutput())
    
    DrawingMode(1)
    
    
    Box(0, 0, 495, 30, RGB(255, 222, 149))
    
    Locate(5, 7)
    FrontColor(0, 0, 0) ; print the text to white !
    DrawText("Nuance1...")
    
  StopDrawing()
EndIf


; ******************** PROG PRINCIPAL ********************************************************************

If OpenWindow(0, 0, 0, 780, 580, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "Exemple") And CreateGadgetList(WindowID(0))
  If CreateMenu(#m_principal, WindowID()) ; here the menu creating starts....
    MenuTitle("&Fichier")
    ; MenuBar() ; here the separator bar will be inserted
    MenuItem(#m_quitter, "&Quitter")
    MenuTitle("Aide") ; Titre avec une lettre soulignée. Le trait souligné n'apparaitra que
    ; si le menu est appelé avec F10 ou ALT.
    MenuItem(#m_aide, "&Mode d'emploi")
    MenuItem(#m_apropos, "A propos")
  EndIf
  
  
  PanelGadget(0, 15, 80, 750, 470)
    
    
    AddGadgetItem (0, 0, "Onglet1 ")
    ScrollAreaGadget(11, 10, 70, 514, 350, 494, 600, 30, #PB_ScrollArea_Flat)
      ; DrawImage(ImageID, x, y [, Largeur, Hauteur])
      ; ImageGadget(605,0,0,400,500,UseImage(15))
      ; ; ButtonGadget (1, 10, 10,230, 30,"Button 1",#PB_Button_Left)
      ; ; ButtonGadget (2, 50, 50,230, 30,"Button 2",#PB_Button_Right)
      ; ; ButtonGadget (3, 90, 90,100, 30,"Button 3, c'est le plus long",#PB_Button_MultiLine)
      ImageGadget(600, 1, 1, 100, 30, UseImage(8))
      ButtonImageGadget(1, 1, 1, 100, 30, UseImage(111))
      ButtonImageGadget(2, 101, 60, 100, 30, UseImage(112))
      ButtonImageGadget(9997, 1, 31, 130, 30, UseImage(113))
      
      
      ; ; TextGadget (4,110,115,230, 20,"This is the content of a ScrollAreaGadget!",#PB_Text_Right);
    CloseGadgetList()
  CloseGadgetList()
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
      Case #PB_Event_Gadget
        Select EventGadgetID()
          Case 1
            MessageRequester("Info", "Le bouton 1 a été pressé !", #PB_MessageRequester_Ok)
          Case 2
            MessageRequester("Info", "Le bouton 2 a été pressé !", #PB_MessageRequester_Ok)
          Case 3
            MessageRequester("Info", "Le bouton 3 a été pressé !", #PB_MessageRequester_Ok)
        EndSelect
    EndSelect
  ForEver
EndIf

Publié : ven. 22/juil./2005 18:13
par Patix
Désolé pour le prog qui ne fonctionne pas. J'ai du mal faire le copier/ coller.

Soldat Inconnu,
merci pour tes réponses rapides.
J'aurai besoin, d'une explication pour le callback (par l'exemple avec mon prog). J'ai regardé plusieurs explications sur ce sujet et je ne comprend pas comment le programmer :-(.

Help me, please

Publié : ven. 22/juil./2005 21:37
par Sehka
Patix,
Je manque un peu de temps pour approfondir ce sujet de callback au demeurant très intéressant.
Cependant comme je souhaite t’aider, je te recommande de jeter un œil au code réalisé par Dobro:http://purebasic.hmt-forum.com/viewtopi ... t=callback

A mon humble avis la meilleur chose à faire est de lui demander directement quelques éclaircissements à ce sujet.

Comme on dit:"Vaut mieux un qui sait que dix qui cherche"

Publié : ven. 22/juil./2005 21:55
par Dr. Dri
Patix a écrit :Désolé pour le prog qui ne fonctionne pas. J'ai du mal faire le copier/ coller.
surtout tu l'as cpoié tel quel donc les 8 ) deviennent des 8)
ajoute des balises code (modifie ton post)

Code : Tout sélectionner

[code]
[/code]

Dri