Maybe someone would like to give it a try too?
Button
Code: Select all
Global Dim ListTimer(10, 4) ; двумерный массив
#Window_1 = 0
Procedure OpenWindow_Window_1(index)
If OpenWindow(#Window_1, #PB_Ignore, #PB_Ignore, 500, 500, "Задатчик", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
; For i = 1 To 24
; ButtonGadget(i+1000 , Cos(i*1.7)*60+110 , Sin(i*1.7)*60+110 , 30 , 30 , Str(i), #PB_Button_Toggle)
; Next
j=0
For i=0 To 359 Step 15
ButtonGadget(j+1000 , 160 * Cos(Radian(i-90))+230 , 160 * Sin(Radian(i-90))+230 , 30 , 30 , Str(j), #PB_Button_Toggle)
j+1
Next
j=0
For i=0 To 359 Step 6
ButtonGadget(j+1100 , 236 * Cos(Radian(i-90))+239 , 236 * Sin(Radian(i-90))+239 , 19 , 19 , Str(j), #PB_Button_Toggle)
j+1
Next
ListTimer(index, 3) = 0
ListTimer(index, 4) = 0
; Обработать гаджеты только этого окна
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
EvnGd = EventGadget()
Select EvnGd
Case 1000 To 1023
For i=1000 To 1023
If GetGadgetState(EvnGd) = 1 And i <> EvnGd
SetGadgetState(i , 0)
ListTimer(index, 3) = EvnGd - 1000
EndIf
Next
Case 1100 To 1159
For i=1100 To 1159
If GetGadgetState(EvnGd) = 1 And i <> EvnGd
SetGadgetState(i , 0)
ListTimer(index, 4) = EvnGd - 1100
EndIf
Next
EndSelect
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_1
CloseWindow(#Window_1)
Break
EndIf
EndSelect
ForEver
EndIf
EndProcedure
index = 1
OpenWindow_Window_1(index)
Debug Str(ListTimer(index, 3)) + ":" + Str(ListTimer(index, 4))
Code: Select all
; EnableExplicit
Define R, R2, color, j, i, x, y, p, RClick
#Red1 = $8888FF
#Green1 = $88FF88
#Window_1 = 0
#cnvs = 0
R=12
R2=20
If OpenWindow(#Window_1, #PB_Ignore, #PB_Ignore, 500, 500, "time", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
color = #Red1
CanvasGadget(#cnvs, 0 , 0 , 500, 500)
If StartDrawing(CanvasOutput(#cnvs))
j = 0
For i = 0 To 359 Step 15
x = 160 * Cos(Radian(i - 90)) + 230 + R2
y = 160 * Sin(Radian(i - 90)) + 230 + R2
Circle(x, y, R2, color)
DrawText(x - R2/3, y - R2/3, Str(i/15), 0, color)
j + 1
If j = 3
j = 0
color = #Red1
Else
color = #Green1
EndIf
Next
j = 0
For i = 0 To 359 Step 6
x = 236 * Cos(Radian(i - 90)) + 239 + R
y = 236 * Sin(Radian(i - 90)) + 239 + R
Circle(x, y, R , color)
DrawText(x - R/2, y - R/2, Str(i/6), 0, color)
j + 1
If j = 5
j = 0
color = #Red1
Else
color = #Green1
EndIf
Next
StopDrawing()
EndIf
;- Loop
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #cnvs
If EventType() = #PB_EventType_LeftButtonDown
x = GetGadgetAttribute(0, #PB_Canvas_MouseX)
y = GetGadgetAttribute(0, #PB_Canvas_MouseY)
x - 250
y - 250
If x > 0
If y > 0
p = 1
Else
p = 2
EndIf
Else
If y > 0
p = 4
Else
p = 3
EndIf
EndIf
; x = Abs(x)
; y = Abs(y)
; RClick = Sqr(Pow(x, 2) + Pow(y, 2))
RClick = Sqr(Pow(Abs(y), 2) + Pow(Abs(y), 2))
If RClick > 200
Debug "minutes"
Else
Debug "hours"
; Это неправильно, я пытаюсь найти четверть и вычислить число.
; Мне нужно получить градус угла, чтобы понять число.
Select p
Case 1
Debug Sin(x/RClick) * 6
Case 2
Debug Cos(x/RClick) * 6
Case 3
Debug Sin(x/RClick) * 6 + 12
Case 4
Debug Cos(x/RClick) * 6 + 12
EndSelect
EndIf
EndIf
EndSelect
Case #PB_Event_CloseWindow
CloseWindow(0)
End
EndSelect
ForEver
EndIf