dans ma collection de programmes éducatifs pour mes petits enfants, j'ai essayé d'introduire le glisser-déposer, mais je bloque, car ça ne fonctionne pas comme je le souhaiterais, sans doute, n'ai-je pas mis la bonne instruction ou la bonne constante.
Je vous serais très reconnaissant si vous aviez le remède à mon problème et je vous en remercie par avance.
Code : Tout sélectionner
;Drag & Drop
EnableExplicit
Enumeration Fenetre
#Fenetre_principale
EndEnumeration
Enumeration Gadgets
#Txt_Definitions
#Txt_Enonce
#Str_1
#Str_2
#Str_3
#Str_4
#Str_5
#Str_6
#Str_Cible_1
#Str_Cible_2
#Str_Cible_3
#Str_Cible_4
#Str_Cible_5
#Str_Cible_6
#Str_Source_1
#Str_Source_2
#Str_Source_3
#Str_Source_4
#Str_Source_5
#Str_Source_6
#Btn_Valider
EndEnumeration
Enumeration Fontes
#Font_Txt_Definitions
#Font_Txt_Enonce
#Font_Str_1
#Font_Str_2
#Font_Str_3
#Font_Str_4
#Font_Str_5
#Font_Str_6
#Font_Cible_1
#Font_Cible_2
#Font_Cible_3
#Font_Cible_4
#Font_Cible_5
#Font_Cible_6
#Font_Source_1
#Font_Source_2
#Font_Source_3
#Font_Source_4
#Font_Source_5
#Font_Source_6
#Font_Btn_Valider
EndEnumeration
;}
;- déclarations des variables et des tableaux
Global Event, x, Texte$
Global Dim Question.s(5), Dim Reponse.s(5), Dim RepRnd.s(5)
;}
Procedure Lire_les_donnees()
For X = 0 To 5
Read.s Question(X)
Read.s Reponse(X)
RepRnd(X) = Reponse(X)
Next
RandomizeArray(RepRnd())
EndProcedure
Procedure Valider()
EndProcedure
Procedure Quitter()
CloseWindow(#Fenetre_principale)
End
EndProcedure
Procedure OpenWindow_Fenetre_principale()
If OpenWindow(#Fenetre_principale, 462, 41, 565, 650, "Drag & Drop © Micoute - 13/09/2014", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
BindEvent(#PB_Event_CloseWindow, @Quitter(), #Fenetre_principale)
TextGadget(#Txt_Definitions, 20, 20, 145, 30, "Définitions")
TextGadget(#Txt_Enonce, 47, 65, 470, 20, "Place chaque mot en face de sa définition et clique sur valider", #PB_Text_Center)
StringGadget(#Str_1, 15, 120, 350, 55, Question(0), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_2, 15, 180, 350, 55, Question(1), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_3, 15, 240, 350, 55, Question(2), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_4, 15, 300, 350, 55, Question(3), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_5, 15, 360, 350, 55, Question(4), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_6, 15, 420, 350, 55, Question(5), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Cible_1, 375, 120, 170, 55, "", #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Cible_2, 375, 180, 170, 55, "", #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Cible_3, 375, 240, 170, 55, "", #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Cible_4, 375, 300, 170, 55, "", #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Cible_5, 375, 360, 170, 55, "", #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Cible_6, 375, 420, 170, 55, "", #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Source_1, 15, 480, 170, 55, RepRnd(0), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Source_2, 195, 480, 170, 55, RepRnd(1), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Source_3, 375, 480, 170, 55, RepRnd(2), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Source_4, 15, 540, 170, 55, RepRnd(3), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Source_5, 195, 540, 170, 55, RepRnd(4), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
StringGadget(#Str_Source_6, 375, 540, 170, 55, RepRnd(5), #ES_CENTER|#ES_MULTILINE|#WS_BORDER)
ButtonGadget(#Btn_Valider, 200, 610, 170, 20, "Valider")
BindGadgetEvent(#Btn_Valider,@Valider())
EnableGadgetDrop(#Str_Cible_1, #PB_Drop_Text, #PB_Drag_Copy)
EnableGadgetDrop(#Str_Cible_2, #PB_Drop_Text, #PB_Drag_Copy)
EnableGadgetDrop(#Str_Cible_3, #PB_Drop_Text, #PB_Drag_Copy)
EnableGadgetDrop(#Str_Cible_4, #PB_Drop_Text, #PB_Drag_Copy)
EnableGadgetDrop(#Str_Cible_5, #PB_Drop_Text, #PB_Drag_Copy)
EnableGadgetDrop(#Str_Cible_6, #PB_Drop_Text, #PB_Drag_Copy)
; Fontes
SetGadgetFont(#Txt_Definitions, LoadFont(#Font_Txt_Definitions, "Arial", 20, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Txt_Enonce, LoadFont(#Font_Txt_Enonce, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_1, LoadFont(#Font_Str_1, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_2, LoadFont(#Font_Str_2, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_3, LoadFont(#Font_Str_3, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_4, LoadFont(#Font_Str_4, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_5, LoadFont(#Font_Str_5, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_6, LoadFont(#Font_Str_6, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Cible_1, LoadFont(#Font_rep_1, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Cible_2, LoadFont(#Font_rep_2, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Cible_3, LoadFont(#Font_rep_3, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Cible_4, LoadFont(#Font_rep_4, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Cible_5, LoadFont(#Font_rep_5, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Cible_6, LoadFont(#Font_rep_6, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Source_1, LoadFont(#Font_Source_1, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Source_2, LoadFont(#Font_Source_2, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Source_3, LoadFont(#Font_Source_3, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Source_4, LoadFont(#Font_Source_4, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Source_5, LoadFont(#Font_Source_5, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Str_Source_6, LoadFont(#Font_Source_6, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
SetGadgetFont(#Btn_Valider, LoadFont(#Font_Btn_Valider, "Arial", 12, #PB_Font_Bold|#PB_Font_HighQuality))
EndIf
EndProcedure
Lire_les_donnees()
OpenWindow_Fenetre_principale()
;- Boucle principale
Repeat
Event = WaitWindowEvent()
; ///////////////////
If #PB_Event_Gadget And EventType() = #PB_EventType_DragStart
Select EventGadget()
Case #Str_Source_1
Texte$ = GetGadgetText(#Str_Source_1)
DragText(Texte$)
Case #Str_Source_2
Case #Str_Source_3
Case #Str_Source_4
Case #Str_Source_5
Case #Str_Source_6
EndSelect
ElseIf Event = #PB_Event_GadgetDrop
Select EventGadget()
Case #Str_Cible_1
Texte$ = Str(SetGadgetText(#Str_Cible_1,GetGadgetText(#Str_Source_1)))
Case #Str_Cible_2
Case #Str_Cible_3
Case #Str_Cible_4
Case #Str_Cible_5
Case #Str_Cible_6
EndSelect
EndIf
ForEver
DataSection
Data.s "Habitude, manière de faire qui se transmet depuis très longtemps","une tradition"
Data.s "Herbe courte et fine","un gazon"
Data.s "Long vêtement sans manche que l'on porte sur les épaules","une cape"
Data.s "Outil à manche en bois et à tête d'acier qui sert à frapper","un marteau"
Data.s "Repos que l'on prend après le repas de midi","une sieste"
Data.s "Avantage remporté sur les ennemis dans une guerre","une victoire"
EndDataSection