Wie kann man dieses Routine anspringen : "Procedure board_setzen()" wenn ich bei diesem TrackBarGadget die Maustaste nach dem verschieben loslasse ?
Ich möchte es nicht mehr über ein Button machen, wenn der Regler verschoben ist.
Danke.
Gruss
Code: Alles auswählen
Global text_e.s,text_a.s,port.l,r_byte.c,w_byte.c,z.l,byte1.c,byte2.c
Global t0.l,t1.l,t2.l,t3.l,t4.l,t5.l,t6.l,t7.l,tt.l,byte1.c,byte2.c
Global *send
Declare board_setzen()
*send = AllocateMemory(10)
Enumeration
#Window_0
#Button_0
#Button_1
#Button_2
#Button_res_a
#Button_light
#Button_sound
#button_slider
#Button_res_d
#Button_res_c
#Button_res_b
#button_button
#String_0
#track_button
#track_light
#track_sound
#track_slider
#track_res_a
#track_res_b
#track_res_c
#track_res_d
#tstr_0
EndEnumeration
OpenWindow(#Window_0, 400, 150, 400,400, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
ButtonGadget(#Button_0, 10,10, 80, 25, "Seriell ein")
ButtonGadget(#Button_1, 10,40, 80, 25, "Seriell aus")
StringGadget(#String_0, 100, 10, 150, 22, "")
ButtonGadget(#Button_button, 10,100, 80, 25, "Button")
ButtonGadget(#Button_light, 10,130, 80, 25, "Light")
ButtonGadget(#Button_sound, 10,160, 80, 25, "Sound")
ButtonGadget(#Button_slider, 10,190, 80, 25, "slider")
ButtonGadget(#Button_res_a, 10,220, 80, 25, "Res A")
ButtonGadget(#Button_res_b, 10,250, 80, 25, "Res B")
ButtonGadget(#Button_res_c, 10,280, 80, 25, "Res C")
ButtonGadget(#Button_res_d, 10,310, 80, 25, "Res D")
TrackBarGadget(#track_button, 100, 100, 250, 20, 0, 1023)
TrackBarGadget(#track_light, 100, 130, 250, 20, 0, 1023)
TrackBarGadget(#track_sound, 100, 160, 250, 20, 0, 1023)
TrackBarGadget(#track_slider, 100, 190, 250, 20, 0, 1023)
TrackBarGadget(#track_res_a, 100, 220, 250, 20, 0, 1023)
TrackBarGadget(#track_res_b, 100, 250, 250, 20, 0, 1023)
TrackBarGadget(#track_res_c, 100, 280, 250, 20, 0, 1023)
TrackBarGadget(#track_res_d, 100, 310, 250, 20, 0, 1023)
port=-1
PokeB(*send,wert)
PokeB(*send+1,wert1)
Repeat
Event = WaitWindowEvent(5)
Select Event
Case #PB_Event_Gadget
EventGadget = EventGadget()
EventType = EventType()
If EventGadget = #Button_0
If port=-1
port=OpenSerialPort(#PB_Any, "COM3", 38400, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 2,2)
If port
text_e=""
text_e + "...geöffnet "+Str(port)
SetGadgetText(#string_0, text_e)
Else
text_e=""
text_e + "...nichts"
SetGadgetText(#string_0, text_e)
port=-1
EndIf
EndIf
EndIf
If EventGadget = #Button_1
If port > 0
CloseSerialPort(port)
text_e=""
text_e + "...geschlossen"
SetGadgetText(#string_0, text_e)
port=-1
EndIf
EndIf
If EventGadget = #Button_res_a
t0=GetGadgetState(#track_res_a)
byte1 =128+32+((t0 & %1110000000) >> 7)
byte2=t0 & %0001111111
board_setzen()
EndIf
If EventGadget = #Button_light
t1=GetGadgetState(#track_light)
byte1 =128+40+((t1 & %1110000000) >> 7)
byte2=t1 & %0001111111
board_setzen()
EndIf
If EventGadget = #Button_sound
t2=GetGadgetState(#track_sound)
byte1 =128+48+((t2 & %1110000000) >> 7)
byte2=t2 & %0001111111
board_setzen()
EndIf
If EventGadget = #Button_slider
t3=GetGadgetState(#track_slider)
byte1 =128+56+((t3 & %1110000000) >> 7)
byte2=t3 & %0001111111
board_setzen()
EndIf
If EventGadget = #Button_res_d
t4=GetGadgetState(#track_res_d)
byte1 =128+0+((t4 & %1110000000) >> 7)
byte2=t4 & %0001111111
board_setzen()
EndIf
If EventGadget = #Button_res_c
t5=GetGadgetState(#track_res_c)
byte1 =128+8+((t5 & %1110000000) >> 7)
byte2=t5 & %0001111111
board_setzen()
EndIf
If EventGadget = #Button_res_b
t6=GetGadgetState(#track_res_b)
byte1 =128+16+((t6 & %1110000000) >> 7)
byte2=t6 & %0001111111
board_setzen()
EndIf
If EventGadget = #Button_button
t7=GetGadgetState(#track_button)
byte1 =128+24+((t7 & %1110000000) >> 7)
byte2=t7 & %0001111111
board_setzen()
EndIf
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_0
CloseWindow(#Window_0)
Break
EndIf
EndSelect
If port > 0
While AvailableSerialPortInput(port)
ReadSerialPortData(port, @r_byte, 1)
Wend
EndIf
ForEver
Procedure board_setzen()
PokeB(*send,byte1)
PokeB(*send+1,byte2)
If port > 0
For z=0 To 8
Delay(1)
WriteSerialPortData(port, *send, 2)
Next
EndIf
EndProcedure