Un petit prog pour 3 questions

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Patix
Messages : 102
Inscription : ven. 19/nov./2004 14:17

Un petit prog pour 3 questions

Message 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 :-)
Sehka
Messages : 114
Inscription : dim. 27/févr./2005 11:41

Message 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
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message 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
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Patix
Messages : 102
Inscription : ven. 19/nov./2004 14:17

Message 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
Sehka
Messages : 114
Inscription : dim. 27/févr./2005 11:41

Message 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"
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message 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
Répondre