création d'un editeur de boite de dialogue

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

création d'un editeur de boite de dialogue

Message par dayvid »

Salut la troupe, sa boume 8)

Bien je voulais faire un programme de création de boitte de dialogue et j'ai travailler dessue
mais je me suis rendue compte que je fesais n'importe quoi (pour changer lol)
en, faite je me complique la vie pour rien et est décider de changer de flingue de main
alors en faite je vais pluto laisser l'utilisateur la crée lui même, ce sera bien plus simple pour lui !

voila un debut de code qui marche pas vraiment comme je veut
j'ai recup l"e code de selection avec la souris et ptetre deux troit autre truc

auriez vous une idée de comment proceder
merci d'avence pour vos explications !

Code : Tout sélectionner

Enumeration
  #Window_0
  #ButtonImage_3
  #ButtonImage_4
  #ButtonImage_5
  #ButtonImage_6
  #ButtonImage_7
  #Fenetre_creation_boitte_de_dialogue
  #Image_ButtonImage_3
  #Image_ButtonImage_4
  #Image_ButtonImage_5
  #Image_ButtonImage_6
  #Image_ButtonImage_7
EndEnumeration

;{ Included Images
DataSection
  Image_ButtonImage_3:
  IncludeBinary "C:\Users\dayvid\Desktop\bouton.png"
  Image_ButtonImage_4:
  IncludeBinary "C:\Users\dayvid\Desktop\bouton image.png"
  Image_ButtonImage_5:
  IncludeBinary "C:\Users\dayvid\Desktop\image.png"
  Image_ButtonImage_6:
  IncludeBinary "C:\Users\dayvid\Desktop\texte.png"
  Image_ButtonImage_7:
  IncludeBinary "C:\Users\dayvid\Desktop\editeur.png"
EndDataSection
;}
;{ Image Plugins
UsePNGImageDecoder()
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}

Global Etas_ButtonImage_3, Etas_ButtonImage_4, Etas_ButtonImage_5, Etas_ButtonImage_6, Etas_ButtonImage_7

Procedure OnMouseSelection(x,y,width,height) 
  Debug "-----" 
  Debug "Selected:" 
  Debug "X     : "+Str(x) 
  Debug "Y     : "+Str(y) 
  Debug "Width : "+Str(width) 
  Debug "Height: "+Str(height) 
  
  If Etas_ButtonImage_3 = 1
    If UseGadgetList(WindowID(#Fenetre_creation_boitte_de_dialogue))
    Numero_bouton = ButtonGadget(#PB_Any, x, y, width, height, "Bonton " + Str(Numero_bouton))
  EndIf
  
  ElseIf Etas_ButtonImage_4 = 1
    If UseGadgetList(WindowID(#Fenetre_creation_boitte_de_dialogue))
    Numero_bouton_image = ButtonImageGadget(#PB_Any, x, y, width, height, 0)
  EndIf
  
  ElseIf Etas_ButtonImage_5 = 1
    If UseGadgetList(WindowID(#Fenetre_creation_boitte_de_dialogue))
    Numero_image = ImageGadget(#PB_Any, x, y, width, height, 0)
  EndIf
  
  ElseIf Etas_ButtonImage_6 = 1
    If UseGadgetList(WindowID(#Fenetre_creation_boitte_de_dialogue))
    Numero_texte = TextGadget(#PB_Any, x, y, width, height, "texte")
  EndIf
  
  ElseIf Etas_ButtonImage_7 = 1
    If UseGadgetList(WindowID(#Fenetre_creation_boitte_de_dialogue))
    Numero_editeur_texte = EditorGadget(#PB_Any, x, y, width, height, 0)
  EndIf
  EndIf
  
EndProcedure 

Procedure DrawMouseSelector(hWnd) 
  Shared WindowProc_MouseSelectStartX, WindowProc_MouseSelectLastX 
  Shared WindowProc_MouseSelectStartY, WindowProc_MouseSelectLastY 
  Shared WindowProc_MouseSelectRect.RECT 

  If WindowProc_MouseSelectStartX > WindowProc_MouseSelectLastX 
    WindowProc_MouseSelectRect\left   = WindowProc_MouseSelectLastX 
    WindowProc_MouseSelectRect\right  = WindowProc_MouseSelectStartX 
  Else 
    WindowProc_MouseSelectRect\left   = WindowProc_MouseSelectStartX 
    WindowProc_MouseSelectRect\right  = WindowProc_MouseSelectLastX 
  EndIf 
  If WindowProc_MouseSelectStartY > WindowProc_MouseSelectLastY 
    WindowProc_MouseSelectRect\top    = WindowProc_MouseSelectLastY 
    WindowProc_MouseSelectRect\bottom = WindowProc_MouseSelectStartY 
  Else 
    WindowProc_MouseSelectRect\top    = WindowProc_MouseSelectStartY 
    WindowProc_MouseSelectRect\bottom = WindowProc_MouseSelectLastY 
  EndIf 

  hDC = GetDC_(hWnd) 
    DrawFocusRect_(hDC,@WindowProc_MouseSelectRect) 
  ReleaseDC_(hWnd,hDC) 
  ;UpdateWindow_(hWnd) ; Win9x fix? 
EndProcedure 

Procedure WindowProc(hWnd,Msg,wParam,lParam) 
  Shared WindowProc_MouseSelect 
  Shared WindowProc_MouseSelectStartX, WindowProc_MouseSelectLastX 
  Shared WindowProc_MouseSelectStartY, WindowProc_MouseSelectLastY 
  Shared WindowProc_MouseSelectRect.RECT 

  Select Msg 
    Case #WM_LBUTTONDOWN 
      WindowProc_MouseSelect  = 1 
      WindowProc_MouseSelectStartX = lParam&$FFFF 
      WindowProc_MouseSelectStartY = (lParam>>16)&$FFFF 
      GetClientRect_(hWnd,winrect.RECT) 
      MapWindowPoints_(hWnd,0,winrect,2) 
      ClipCursor_(winrect) 
    Case #WM_LBUTTONUP 
      If WindowProc_MouseSelect > 1 
        DrawMouseSelector(hWnd) 
        If WindowProc_MouseSelectRect\left <> WindowProc_MouseSelectRect\right And WindowProc_MouseSelectRect\top <> WindowProc_MouseSelectRect\bottom 
          OnMouseSelection(WindowProc_MouseSelectRect\left,WindowProc_MouseSelectRect\top,WindowProc_MouseSelectRect\right-WindowProc_MouseSelectRect\left,WindowProc_MouseSelectRect\bottom-WindowProc_MouseSelectRect\top) 
          SetCapture_(0) 
        EndIf 
      EndIf 
      ClipCursor_(0) 
      WindowProc_MouseSelect = 0 
    Case #WM_MOUSEMOVE 
      If WindowProc_MouseSelect > 0 And wParam & #MK_LBUTTON 
        If WindowProc_MouseSelect > 1 
          DrawMouseSelector(hWnd) 
        Else 
          WindowProc_MouseSelect + 1 
        EndIf 
        WindowProc_MouseSelectLastX = lParam&$FFFF 
        WindowProc_MouseSelectLastY = (lParam>>16)&$FFFF 
        DrawMouseSelector(hWnd) 
        SetCapture_(hWnd) 
      EndIf 
  EndSelect 
  ProcedureReturn #PB_ProcessPureBasicEvents 
EndProcedure 

Procedure Fenetre_creation_boitte_de_dialogue(a)
OpenWindow(#Fenetre_creation_boitte_de_dialogue,0,0,400,400,"Boitte de dialogue",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_Invisible) 
SetWindowCallback(@WindowProc()) 
HideWindow(#Fenetre_creation_boitte_de_dialogue, 0) 
; SetActiveGadget(#Fenetre_creation_boitte_de_dialogue)
; SetActiveGadget(#Window_0)

Repeat 
  Select WaitWindowEvent() 
    Case #PB_Event_CloseWindow 
      End
  EndSelect 
ForEver
EndProcedure

Procedure Fenetre_outils_pour_la_boitte_de_dialogue(b)
  If OpenWindow(#Window_0, 480, 456, 198, 36, " Outils pour la boitte de dialogue", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_Tool)
    ButtonImageGadget(#ButtonImage_3, 5, 5, 37, 26, CatchImage(#Image_ButtonImage_3, ?Image_ButtonImage_3), #PB_Button_Toggle)
    ButtonImageGadget(#ButtonImage_4, 43, 5, 37, 26, CatchImage(#Image_ButtonImage_4, ?Image_ButtonImage_4), #PB_Button_Toggle)
    ButtonImageGadget(#ButtonImage_5, 80, 5, 37, 26, CatchImage(#Image_ButtonImage_5, ?Image_ButtonImage_5), #PB_Button_Toggle)
    ButtonImageGadget(#ButtonImage_6, 117, 5, 37, 26, CatchImage(#Image_ButtonImage_6, ?Image_ButtonImage_6), #PB_Button_Toggle)
    ButtonImageGadget(#ButtonImage_7, 155, 5, 37, 26, CatchImage(#Image_ButtonImage_7, ?Image_ButtonImage_7), #PB_Button_Toggle)
  EndIf
  ;{- Event loop
Repeat
  Event = WaitWindowEvent()
  Select Event
    ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      If EventGadget = #ButtonImage_3
        Etas_ButtonImage_3 = GetGadgetState(#ButtonImage_3)
        If Etas_ButtonImage_3 = 1
        SetGadgetState(#ButtonImage_4, 0)
        SetGadgetState(#ButtonImage_5, 0)
        SetGadgetState(#ButtonImage_6, 0)
        SetGadgetState(#ButtonImage_7, 0)
        Else
        SetGadgetState(#ButtonImage_3, 1)
      EndIf
      
      ElseIf EventGadget = #ButtonImage_4
        Etas_ButtonImage_4 = GetGadgetState(#ButtonImage_4)
        If Etas_ButtonImage_4 = 1
        SetGadgetState(#ButtonImage_3, 0)
        SetGadgetState(#ButtonImage_5, 0)
        SetGadgetState(#ButtonImage_6, 0)
        SetGadgetState(#ButtonImage_7, 0)
        Etas_ButtonImage_3 = 0
        Etas_ButtonImage_5 = 0
        Etas_ButtonImage_6 = 0
        Etas_ButtonImage_7 = 0
        Else
        SetGadgetState(#ButtonImage_4, 1)
      EndIf
      
      ElseIf EventGadget = #ButtonImage_5
        Etas_ButtonImage_5 = GetGadgetState(#ButtonImage_5)
        If Etas_ButtonImage_5 = 1
        SetGadgetState(#ButtonImage_4, 0)
        SetGadgetState(#ButtonImage_3, 0)
        SetGadgetState(#ButtonImage_6, 0)
        SetGadgetState(#ButtonImage_7, 0)
        Etas_ButtonImage_4 = 0
        Etas_ButtonImage_3 = 0
        Etas_ButtonImage_6 = 0
        Etas_ButtonImage_7 = 0
      Else
        SetGadgetState(#ButtonImage_5, 1)
      EndIf
      
      ElseIf EventGadget = #ButtonImage_6
        Etas_ButtonImage_6 = GetGadgetState(#ButtonImage_6)
        If Etas_ButtonImage_6 = 1
        SetGadgetState(#ButtonImage_4, 0)
        SetGadgetState(#ButtonImage_5, 0)
        SetGadgetState(#ButtonImage_3, 0)
        SetGadgetState(#ButtonImage_7, 0)
        Etas_ButtonImage_4 = 0
        Etas_ButtonImage_5 = 0
        Etas_ButtonImage_3 = 0
        Etas_ButtonImage_7 = 0
        Else
        SetGadgetState(#ButtonImage_6, 1)
      EndIf
      
      ElseIf EventGadget = #ButtonImage_7
        Etas_ButtonImage_7 = GetGadgetState(#ButtonImage_7)
        If Etas_ButtonImage_7 = 1
        SetGadgetState(#ButtonImage_4, 0)
        SetGadgetState(#ButtonImage_5, 0)
        SetGadgetState(#ButtonImage_6, 0)
        SetGadgetState(#ButtonImage_3, 0)
        Etas_ButtonImage_4 = 0
        Etas_ButtonImage_5 = 0
        Etas_ButtonImage_6 = 0
        Etas_ButtonImage_3 = 0
      Else
        SetGadgetState(#ButtonImage_7, 1)
      EndIf
      
      EndIf
    ; ////////////////////////
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect
ForEver
;
;}
EndProcedure

Thread_Fenetre_outils_pour_la_boitte_de_dialogue = CreateThread(@Fenetre_outils_pour_la_boitte_de_dialogue(), 0)
Thread_Fenetre_creation_boitte_de_dialogue = CreateThread(@Fenetre_creation_boitte_de_dialogue(), 0)

WaitThread(Thread_Fenetre_outils_pour_la_boitte_de_dialogue)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: création d'un editeur de boitte de dialogue

Message par SPH »

dayvid a écrit :Salut la troupe, sa boume 8)

Bien je voulais faire un programme de création de boitte de dialogue et j'ai travailler dessue
mais je me suis rendue compte que je fesais n'importe quoi (pour changer lol)
en, faite je me complique la vie pour rien et est décider de changer de flingue de main
alors en faite je vais pluto laisser l'utilisateur la crée lui même, ce sera bien plus simple pour lui !

voila un debut de code qui marche pas vraiment comme je veut
j'ai recup l"e code de selection avec la souris et ptetre deux troit autre truc

auriez vous une idée de comment proceder
merci d'avence pour vos explications !
Ouai ca boom.
Voila de la pure poesie comme l'aide Dobro : des fautes, des constats, et des reclamations. Helas pour moi, je ne sais pas le faire car je ne me suis jamais penché sur ce genre de code. Et ouai, apres 5 ou 6 ans de PB, je ne sais tjr pas alligner 2 lignes de code.
Bon, de la a dire que Dobro va etre enchanté de t'aider, il y a un monde. Mais si tu le demande gentiment, il t'aidera :mrgreen:
En tout cas, tu m'as manqué !!! :idea:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: création d'un editeur de boitte de dialogue

Message par dayvid »

Merci SPH :P
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: création d'un editeur de boitte de dialogue

Message par dayvid »

En faite j'éssais de crée un genre d'editeur visuel pour crée des boitte de dialogue
ou alors, c'est que je delire :?
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: création d'un editeur de boitte de dialogue

Message par jbernard13 »

c'est possible d'avoir les images qui manquennt afin de le testé svp
Jbernard13
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: création d'un editeur de boitte de dialogue

Message par SPH »

jbernard13 a écrit :c'est possible d'avoir les images qui manquennt afin de le testé svp
J'ai mis la meme image en BMP genre 20*20 pour tester. Le programme reste tres basique et je n'ai pas trouvé a quoi il sert. Mais notre grand ami dayvid viens de nous le dire : "crée un genre d'editeur visuel pour crée des boitte de dialogue"

Dayvid : decidement, tu tiens vraiment a faire un createur de trucs avec PB !! :mrgreen:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: création d'un editeur de boitte de dialogue

Message par nico »

JaPBe existe, je ne vois pas trop l'intérêt de ca programme.

Je dis ça parce que c'est assez laborieux à faire et que tu n'as pas encore le niveau de compétence, mais pour le plaisir pourquoi pas!
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: création d'un editeur de boitte de dialogue

Message par Parole De JOJO »

c'est une bonne idee je trouve
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: création d'un editeur de boitte de dialogue

Message par dayvid »

Bonjour nico, je voudrait que tu me donne deux trois tuyo tu veut bien
pas grand chose rassure toi :)

comment tu as fait ta selection toi ?
oui la selection de la souris avec les gadget
bon sinon moi j'ai réussi a crée sa !!! miracle
c'est pas au point mais sa fonctione

Code : Tout sélectionner

Enumeration
  #Window_0
  #ButtonImage_3
  #ButtonImage_4
  #ButtonImage_5
  #ButtonImage_6
  #ButtonImage_7
  #Fenetre_creation_boitte_de_dialogue
  #Image_ButtonImage_3
  #Image_ButtonImage_4
  #Image_ButtonImage_5
  #Image_ButtonImage_6
  #Image_ButtonImage_7
EndEnumeration

DataSection
  Image_ButtonImage_3:
  IncludeBinary "C:\Users\dayvid\Desktop\bouton.png"
  Image_ButtonImage_4:
  IncludeBinary "C:\Users\dayvid\Desktop\bouton image.png"
  Image_ButtonImage_5:
  IncludeBinary "C:\Users\dayvid\Desktop\image.png"
  Image_ButtonImage_6:
  IncludeBinary "C:\Users\dayvid\Desktop\texte.png"
  Image_ButtonImage_7:
  IncludeBinary "C:\Users\dayvid\Desktop\editeur.png"
EndDataSection

UsePNGImageDecoder()

Global convertion_nombre
Global convertion_nombre

Global Etas_ButtonImage_3, Etas_ButtonImage_4, Etas_ButtonImage_5, Etas_ButtonImage_6, Etas_ButtonImage_7

Procedure.l convertion_positif(nombre)
  convertion_nombre = nombre - nombre - nombre
  ProcedureReturn convertion_nombre
EndProcedure

Procedure.l convertion_negatif(nombre)
  convertion_nombre = nombre - nombre - nombre
  ProcedureReturn convertion_nombre
EndProcedure
  
Procedure Fenetre_creation_boitte_de_dialogue(a)
  If OpenWindow(#Fenetre_creation_boitte_de_dialogue, 555, 254, 600, 400, "",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    
  EndIf
  
  Repeat ; Start of the event loop
    
    Event = WaitWindowEvent(1) ; This line waits until an event is received from Windows
    
    WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
    
    GadgetID = EventGadget() ; Is it a gadget event?
    
    EventType = EventType() ; The event typeEvent
    
    Souris_X = WindowMouseX(#Fenetre_creation_boitte_de_dialogue)
    Souris_Y = WindowMouseY(#Fenetre_creation_boitte_de_dialogue)
    
    If Event = #PB_Event_Gadget
      
    Else
      
      If Event = 512 ; déplacement de la souris sur la fenêtre
        StartDrawing(WindowOutput(#Fenetre_creation_boitte_de_dialogue))
        DrawingMode(#PB_2DDrawing_Outlined)
        RoundBox(Sauvegarde_de_Sauvegarde_Depart_Souris_X, Sauvegarde_de_Sauvegarde_Depart_Souris_Y, Sauvegarde_Cadre_X, Sauvegarde_Cadre_Y, 1, 1, RGB(241, 241, 241))
        StopDrawing()
        
        If Event_513 = 1
          StartDrawing(WindowOutput(#Fenetre_creation_boitte_de_dialogue))
          DrawingMode(#PB_2DDrawing_Outlined)
          Sauvegarde_de_Sauvegarde_Depart_Souris_X = Sauvegarde_Depart_Souris_X
          Sauvegarde_de_Sauvegarde_Depart_Souris_Y = Sauvegarde_Depart_Souris_Y
          Sauvegarde_Cadre_X = Souris_X - Sauvegarde_Depart_Souris_X
          Sauvegarde_Cadre_Y = Souris_Y - Sauvegarde_Depart_Souris_Y
          RoundBox(Sauvegarde_Depart_Souris_X, Sauvegarde_Depart_Souris_Y, Souris_X - Sauvegarde_Depart_Souris_X, Souris_Y - Sauvegarde_Depart_Souris_Y, 1, 1, RGB(255, 0, 0))
          StopDrawing()
          
          ClearDebugOutput()
          Debug Sauvegarde_Depart_Souris_X
          Debug Sauvegarde_Depart_Souris_Y
          Debug Souris_X - Sauvegarde_Depart_Souris_X
          Debug Souris_Y - Sauvegarde_Depart_Souris_Y
          
        EndIf
        
      ElseIf Event = 513 ; bouton gauche appuiler avec la souris sur la fenêtre
        Sauvegarde_Event = Event
        Event_513 = 1
        
        Sauvegarde_Depart_Souris_X = Souris_X
        Sauvegarde_Depart_Souris_Y = Souris_Y
        
        ClearDebugOutput()
          Debug Sauvegarde_Depart_Souris_X
          Debug Sauvegarde_Depart_Souris_Y
          Debug Souris_X - Sauvegarde_Depart_Souris_X
          Debug Souris_Y - Sauvegarde_Depart_Souris_Y
          
        ElseIf Event = 514 ; bouton gauche relacher avec la souris sur la fenêtre
        StartDrawing(WindowOutput(#Fenetre_creation_boitte_de_dialogue))
        DrawingMode(#PB_2DDrawing_Default )
        RoundBox(Sauvegarde_de_Sauvegarde_Depart_Souris_X, Sauvegarde_de_Sauvegarde_Depart_Souris_Y, Sauvegarde_Cadre_X, Sauvegarde_Cadre_Y, 1, 1, RGB(241, 241, 241))
        StopDrawing()
        ClearDebugOutput()
        
        Sauvegarde_Event = Event
        Event_513 = 0
        
        Sauvegarde_Arriver_Souris_X = Souris_X
        Sauvegarde_Arriver_Souris_Y = Souris_Y
        
        If Souris_X - Sauvegarde_Depart_Souris_X > 0
          X = Sauvegarde_Depart_Souris_X
          Largeur = Souris_X - Sauvegarde_Depart_Souris_X
          Debug "X: " + Str(Sauvegarde_Depart_Souris_X)
          Debug "Largeur: " + Str(Souris_X - Sauvegarde_Depart_Souris_X)
        Else
          X = Sauvegarde_Depart_Souris_X - convertion_positif(Souris_X - Sauvegarde_Depart_Souris_X)
          Largeur = convertion_positif(Souris_X - Sauvegarde_Depart_Souris_X)
          Debug "X: " + Str(Sauvegarde_Depart_Souris_X - convertion_positif(Souris_X - Sauvegarde_Depart_Souris_X))
          Debug "Largeur: " + Str(convertion_positif(Souris_X - Sauvegarde_Depart_Souris_X))
        EndIf
        
        If Souris_Y - Sauvegarde_Depart_Souris_Y > 0
          Y = Sauvegarde_Depart_Souris_Y
          Hauteur = Souris_Y - Sauvegarde_Depart_Souris_Y
          Debug "Y: " + Str(Sauvegarde_Depart_Souris_Y)
          Debug "Hauteur: " + Str(Souris_Y - Sauvegarde_Depart_Souris_Y)
        Else
          Y = Sauvegarde_Depart_Souris_Y - convertion_positif(Souris_Y - Sauvegarde_Depart_Souris_Y)
          Hauteur = convertion_positif(Souris_Y - Sauvegarde_Depart_Souris_Y)
          Debug "Y: " + Str(Sauvegarde_Depart_Souris_Y - convertion_positif(Souris_Y - Sauvegarde_Depart_Souris_Y))
          Debug "Hauteur: " + Str(convertion_positif(Souris_Y - Sauvegarde_Depart_Souris_Y))
        EndIf
        
        If Etas_ButtonImage_3 = 1
          If UseGadgetList(WindowID(#Fenetre_creation_boitte_de_dialogue))
            Numero_bouton = ButtonGadget(#PB_Any, x, y, Largeur, Hauteur, "Bonton " + Str(Numero_bouton))
          EndIf
          
        ElseIf Etas_ButtonImage_4 = 1
          If UseGadgetList(WindowID(#Fenetre_creation_boitte_de_dialogue))
            Numero_bouton_image = ButtonImageGadget(#PB_Any, x, y, Largeur, Hauteur, 0)
          EndIf
          
        ElseIf Etas_ButtonImage_5 = 1
          If UseGadgetList(WindowID(#Fenetre_creation_boitte_de_dialogue))
            Numero_image = ImageGadget(#PB_Any, x, y, Largeur, Hauteur, 0)
          EndIf
          
        ElseIf Etas_ButtonImage_6 = 1
          If UseGadgetList(WindowID(#Fenetre_creation_boitte_de_dialogue))
            Numero_texte = TextGadget(#PB_Any, x, y, Largeur, Hauteur, "texte")
          EndIf
          
        ElseIf Etas_ButtonImage_7 = 1
          If UseGadgetList(WindowID(#Fenetre_creation_boitte_de_dialogue))
            Numero_editeur_texte = EditorGadget(#PB_Any, x, y, Largeur, Hauteur, 0)
          EndIf
        EndIf

      ElseIf Event = 515
        Sauvegarde_Event = Event
        ; double clique gauche avec la souris sur la fenêtre
        
      ElseIf Event = 516
        Sauvegarde_Event = Event
        ; bouton droit appuiler avec la souris sur la fenêtre
        
      ElseIf Event = 517
        Sauvegarde_Event = Event
        ; bouton gauche relacher avec la souris sur la fenêtre
        
      ElseIf Event = 518
        Sauvegarde_Event = Event
        ; double clique droit avec la souris sur la fenêtre
        
      ElseIf Event = 519
        Sauvegarde_Event = Event
        ; bouton centrale appuiler avec la souris sur la fenêtre
        
      ElseIf Event = 520
        Sauvegarde_Event = Event
        ; bouton centrale relacher avec la souris sur la fenêtre
        
      ElseIf Event = 521
        Sauvegarde_Event = Event
        ; double clique centrale avec la souris sur la fenêtre
        
      ElseIf Event = 522
        Sauvegarde_Event = Event
        ; déplacement de la molètte de la souris sur la fenêtre
        
      ElseIf Event = 523
        Sauvegarde_Event = Event
        ; déplacement de la molètte de la souris sur la fenêtre
        
      EndIf
      
    EndIf
    
  Until Event = #PB_Event_CloseWindow ; End of the event loop
  
  End
  ;
  
EndProcedure

Procedure Fenetre_outils_pour_la_boitte_de_dialogue(b)
  If OpenWindow(#Window_0, 480, 456, 198, 36, " Outils pour la boitte de dialogue", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_Tool)
    ButtonImageGadget(#ButtonImage_3, 5, 5, 37, 26, CatchImage(#Image_ButtonImage_3, ?Image_ButtonImage_3), #PB_Button_Toggle)
    ButtonImageGadget(#ButtonImage_4, 43, 5, 37, 26, CatchImage(#Image_ButtonImage_4, ?Image_ButtonImage_4), #PB_Button_Toggle)
    ButtonImageGadget(#ButtonImage_5, 80, 5, 37, 26, CatchImage(#Image_ButtonImage_5, ?Image_ButtonImage_5), #PB_Button_Toggle)
    ButtonImageGadget(#ButtonImage_6, 117, 5, 37, 26, CatchImage(#Image_ButtonImage_6, ?Image_ButtonImage_6), #PB_Button_Toggle)
    ButtonImageGadget(#ButtonImage_7, 155, 5, 37, 26, CatchImage(#Image_ButtonImage_7, ?Image_ButtonImage_7), #PB_Button_Toggle)
    SetActiveWindow(#Window_0)
  EndIf
  ;{- Event loop
Repeat
  Event = WaitWindowEvent()
  Select Event
    ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      If EventGadget = #ButtonImage_3
        Etas_ButtonImage_3 = GetGadgetState(#ButtonImage_3)
        If Etas_ButtonImage_3 = 1
        SetGadgetState(#ButtonImage_4, 0)
        SetGadgetState(#ButtonImage_5, 0)
        SetGadgetState(#ButtonImage_6, 0)
        SetGadgetState(#ButtonImage_7, 0)
        Else
        SetGadgetState(#ButtonImage_3, 1)
      EndIf
      
      ElseIf EventGadget = #ButtonImage_4
        Etas_ButtonImage_4 = GetGadgetState(#ButtonImage_4)
        If Etas_ButtonImage_4 = 1
        SetGadgetState(#ButtonImage_3, 0)
        SetGadgetState(#ButtonImage_5, 0)
        SetGadgetState(#ButtonImage_6, 0)
        SetGadgetState(#ButtonImage_7, 0)
        Etas_ButtonImage_3 = 0
        Etas_ButtonImage_5 = 0
        Etas_ButtonImage_6 = 0
        Etas_ButtonImage_7 = 0
        Else
        SetGadgetState(#ButtonImage_4, 1)
      EndIf
      
      ElseIf EventGadget = #ButtonImage_5
        Etas_ButtonImage_5 = GetGadgetState(#ButtonImage_5)
        If Etas_ButtonImage_5 = 1
        SetGadgetState(#ButtonImage_4, 0)
        SetGadgetState(#ButtonImage_3, 0)
        SetGadgetState(#ButtonImage_6, 0)
        SetGadgetState(#ButtonImage_7, 0)
        Etas_ButtonImage_4 = 0
        Etas_ButtonImage_3 = 0
        Etas_ButtonImage_6 = 0
        Etas_ButtonImage_7 = 0
      Else
        SetGadgetState(#ButtonImage_5, 1)
      EndIf
      
      ElseIf EventGadget = #ButtonImage_6
        Etas_ButtonImage_6 = GetGadgetState(#ButtonImage_6)
        If Etas_ButtonImage_6 = 1
        SetGadgetState(#ButtonImage_4, 0)
        SetGadgetState(#ButtonImage_5, 0)
        SetGadgetState(#ButtonImage_3, 0)
        SetGadgetState(#ButtonImage_7, 0)
        Etas_ButtonImage_4 = 0
        Etas_ButtonImage_5 = 0
        Etas_ButtonImage_3 = 0
        Etas_ButtonImage_7 = 0
        Else
        SetGadgetState(#ButtonImage_6, 1)
      EndIf
      
      ElseIf EventGadget = #ButtonImage_7
        Etas_ButtonImage_7 = GetGadgetState(#ButtonImage_7)
        If Etas_ButtonImage_7 = 1
        SetGadgetState(#ButtonImage_4, 0)
        SetGadgetState(#ButtonImage_5, 0)
        SetGadgetState(#ButtonImage_6, 0)
        SetGadgetState(#ButtonImage_3, 0)
        Etas_ButtonImage_4 = 0
        Etas_ButtonImage_5 = 0
        Etas_ButtonImage_6 = 0
        Etas_ButtonImage_3 = 0
      Else
        SetGadgetState(#ButtonImage_7, 1)
      EndIf
      
      EndIf
    ; ////////////////////////
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect
ForEver
;
;}
EndProcedure

Thread_Fenetre_outils_pour_la_boitte_de_dialogue = CreateThread(@Fenetre_outils_pour_la_boitte_de_dialogue(), 0)
Delay(25)
Thread_Fenetre_creation_boitte_de_dialogue = CreateThread(@Fenetre_creation_boitte_de_dialogue(), 0)
Delay(1)
SetActiveWindow(#Window_0)
StickyWindow(#Window_0, 1)

WaitThread(Thread_Fenetre_creation_boitte_de_dialogue)
tous ce donc j'ai besoin est:

comment faire une selection
comment déplacer les gadget crée
comment leur attribuer une constante au choix (que l'utilisateur choisie)

je ne cherche pas a cree un editeur visuel
mais simplement un editeur de boitte de dialogue
je sais que pour le momment on y comprend rien et qu'on voie pas l'interet
mais laissez moi juste vous montrez

ce que j'ai besoin:

une selection avec la souris sur la fenêtre
crée le gadget voulut
pouvoir déplacer le gadget crée
pouvoir modifier le gadget crée (taille, texte, image, etc)

Nico, je ne cherche pas a refaire un editeur visuelle car mon niveaux est
trop bas pour le momment et sa ne m'interesse pas en plus
j'ai juste besoin de ton aide si tu l'accepte pour divers petite chose
pour le reste je ferais je que je peut tous seulle
merci d'avence !!! :D
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Parole De JOJO
Messages : 446
Inscription : mar. 25/mai/2010 17:24
Localisation : Bnei Brak, Israel

Re: création d'un editeur de boitte de dialogue

Message par Parole De JOJO »

sympa
je t'aurais conseille d'inclure les images en binaire

pour deplacer les gadgets pourkoi ne pas detecter la souris enfonce et bouger le gadgets avec la souris juska k'elle soit relache?
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: création d'un editeur de boitte de dialogue

Message par dayvid »

comment faire ?
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: création d'un editeur de boitte de dialogue

Message par SPH »

Dayvid, je te propose quelque chose : bossons ensemble !!
Je suis plus nul que toi concernant les gadget car je ne les ai jamais utilisé. Alors voila ce qu'on va faire : poste un code tres simple montrant l'affichage d'un gadget et je bosserais dessus pour arriver a ton niveau. Comme ca, on arrivera rapidement au meme niveau et je pourrais t'aider.

OUI ? :idea:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: création d'un editeur de boitte de dialogue

Message par jbernard13 »

je veux bien t'aider aussi
Jbernard13
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: création d'un editeur de boitte de dialogue

Message par SPH »

jbernard13 a écrit :je veux bien t'aider aussi
D'accord. Poste un truc simple (gadget) et j'essayerais de l'ameliorer

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: création d'un editeur de boitte de dialogue

Message par jbernard13 »

SPH a écrit :
jbernard13 a écrit :je veux bien t'aider aussi
D'accord. Poste un truc simple (gadget) et j'essayerais de l'ameliorer
Ok , je peux meme vous dessiner les icones.
Jbernard13
Répondre