PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике


Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике

Сообщений 271 страница 300 из 446

271

Какая-то лабуда рисуется.

0

272

max написал(а):

Должно быть так?

А разве нет?
Разве не цель в том, чтобы нарисовать матрицу в окне и вывести на нее символы?

max написал(а):

Какая-то лабуда рисуется.

Тот пример что я выложил, нормально работает - выводит текст?

0

273

Пётр написал(а):

Тот пример что я выложил, нормально работает - выводит текст?

Да.

0

274

max написал(а):

Какая-то лабуда рисуется.

Код.

Код:
Structure DrawInfo
  row.b[8]
EndStructure


CreateImage(0,148,148);

  Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(83,0,148,148,0) ; Очистка рисунка
For col = 7 To 1 Step -1
  For row = 0 To 7
    x = 8 * row + col
    y = 8 * row + col
            If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)

                Next row
            Next col
            For row = 0 To 7
    x = row
    y = row   
 

  Next row

    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Procedure Timer1()
  ImageDraw.DrawInfo
  
  For i=0 To 7
    ImageDraw\row[i] = Random(255)
  Next i
  
  Draw_Image(@ImageDraw)
EndProcedure

Image.DrawInfo

If OpenWindow(0, 0, 0, 277, 260, "О", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ImageGadget(0,20,20,148,148, 0)
  Draw_Image(@Image)
  
  SetTimer_(WindowID(0),2,100, @Timer1() )
  
  Repeat
    Event = WaitWindowEvent()
    
  Until Event = #PB_Event_CloseWindow
  
EndIf

0

275

Чем не подошел такой вариант процедуры?
Зачем было переделывать?

Код:
Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(0,0,148,148,0) ; Очистка рисунка
     For col = 0 To 7
       For row = 0 To 7
         x = 20 + col * 15
         y = 20 + row * 15 
         If *Infa\row[row] << col & %10000000
           Color = RGB(210, 27, 45)
         Else
           Color = RGB(131, 137, 141)
         EndIf
         Circle(x, y, 5, Color)
       Next
     Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

0

276

Значит тогда матрицу надо рисовать в Procedure Timer1()?

0

277

Timer1() надо вызывать по таймеру, а текст размещать в переменной ShiftString_String.
При каждой замене текста, нужно обнулять переменные ShiftString_Pos и ShiftString_String_Pos.

0

278

С текстом понятно. А как тогда нарисовать эффект "Матрица"?

Отредактировано max (12.07.2011 19:01:53)

0

279

Нужен сдвиг сверху вниз?

0

280

Да.

0

281

Нужно "двигать" данные в структуре - копии матрицы, ведь именно от ее содержимого зависит картинка.
Если изменить данные в структуре, изменяться данные, отображаемые матрицой.

Код:
Structure DrawInfo
  row.a[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(83,0,148,148,0) ; Очистка рисунка
    For col = 0 To 7
      For row = 0 To 7
        x = 20 + col * 15
        y = 20 + row * 15 
        If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)
      Next
    Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure


Procedure Timer1()
  Static Draw.DrawInfo, i
  For i=6 To 0 Step -1
    Draw\row[i+1] = Draw\row[i]
  Next i
  Draw\row[0]=Random(255)
  Draw_Image(Draw)
EndProcedure

If OpenWindow(0, 0, 0, 277, 260, "О", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ImageGadget(0,20,20,148,148, 0)
  Timer1()
  SetTimer_(WindowID(0),0,800, @Timer1())
  Repeat
    Event = WaitWindowEvent()
  Until Event = #PB_Event_CloseWindow
  
EndIf

+1

282

Спасибо! А чтобы соеденить два эффекта, нужно одну процедуру Timer1() переименовать в Procedure Timer2()?

0

283

Можно и так, а можно сделать все в одной процедуре, выбирая требуемый эффект с помощью условий.
Это уже как будет удобнее.

0

284

Понял, спасибо.

0

285

Пытался сделать выбор эффекта, но как всегда грабли.

Код:
Structure DrawInfo
  row.a[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(83,0,148,148,0) ; Очистка рисунка
    For col = 0 To 7
      For row = 0 To 7
        x = 20 + col * 15
        y = 20 + row * 15 
        If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)
      Next
    Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Procedure Timer1()
  Static Draw.DrawInfo, i  
  For i=0 To 7
    Draw\row[i] = Random(255)
  Next i  
  Draw_Image(Draw)
EndProcedure

Procedure Timer2()
  Static Draw.DrawInfo, i
  For i=6 To 0 Step -1
    Draw\row[i+1] = Draw\row[i]
  Next i
  Draw\row[0]=Random(255)
  Draw_Image(Draw)
EndProcedure

OpenWindow(0, 0, 0, 277, 260, "О", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  OptionGadget(14, 214, 23, 60, 20, "1")
  OptionGadget(15, 214, 43, 90, 20, "2")
  SetGadgetState(14, 1)
  ImageGadget(0,20,20,148,148, 0)
  ;Timer1()
  ;Timer2()
  ;SetTimer_(WindowID(0),2,100, @Timer1())
  ;SetTimer_(WindowID(0),0,800, @Timer2())
  Repeat
    Event = WaitWindowEvent()
    
;{----------События компонентов----------
If Event=#PB_Event_Gadget
    
    Select EventGadget()
       
      Case 14
        
  Timer1()
  SetTimer_(WindowID(0),2,100, @Timer1())
        
     Case 15
       
  Timer2()
  SetTimer_(WindowID(0),0,800, @Timer2())      
        
    EndSelect    
    
  EndIf 
  ;}-------------------------------------
    
  Until Event = #PB_Event_CloseWindow

0

286

"Вешать" все эффекты нужно на таймер с одним и тем же идентификатором (зачем разные, если в один и тот же промежуток времени работает только один таймер?) и нужно завершать работу предыдущего таймера при выборе нового эффекта.
Грабли были из-за того что одновременно работали два таймера, т. е. два эффекта были одновременно.

Код:
Structure DrawInfo
  row.a[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(83,0,148,148,0) ; Очистка рисунка
    For col = 0 To 7
      For row = 0 To 7
        x = 20 + col * 15
        y = 20 + row * 15 
        If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)
      Next
    Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Procedure Timer1()
  Static Draw.DrawInfo, i  
  For i=0 To 7
    Draw\row[i] = Random(255)
  Next i  
  Draw_Image(Draw)
EndProcedure

Procedure Timer2()
  Static Draw.DrawInfo, i
  For i=6 To 0 Step -1
    Draw\row[i+1] = Draw\row[i]
  Next i
  Draw\row[0]=Random(255)
  Draw_Image(Draw)
EndProcedure

OpenWindow(0, 0, 0, 277, 260, "О", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

OptionGadget(14, 214, 23, 60, 20, "1")
OptionGadget(15, 214, 43, 90, 20, "2")
SetGadgetState(14, 1)
ImageGadget(0,20,20,148,148, 0)
;Timer1()
;Timer2()
;SetTimer_(WindowID(0),2,100, @Timer1())
;SetTimer_(WindowID(0),0,800, @Timer2())
Repeat
  Event = WaitWindowEvent()
  
  ;{----------События компонентов----------
  If Event=#PB_Event_Gadget
    
    Select EventGadget()
        
      Case 14
        KillTimer_(WindowID(0),2)
        Timer1()
        SetTimer_(WindowID(0),2,100, @Timer1())
        
      Case 15
        KillTimer_(WindowID(0),2)
        Timer2()
        SetTimer_(WindowID(0),2,800, @Timer2())      

    EndSelect    
    
  EndIf 
  ;}-------------------------------------
  
Until Event = #PB_Event_CloseWindow

+1

287

Пётр написал(а):

зачем разные, если в один и тот же промежуток времени работает только один таймер?

Согласен.

Пётр написал(а):

нужно завершать работу предыдущего таймера при выборе нового эффекта.

Про это не знал.
Спасибо.
А что-бы регулировать кол-во светодиодов нужно менять значение Random? И если да, то как это привязать к двжку?
По поводу скорости вообще никаких соображений.

Отредактировано max (13.07.2011 19:15:46)

0

288

max написал(а):

А что-бы регулировать кол-во светодиодов нужно менять значение Random?

В смысле, их там ведь 64 или нет?

max написал(а):

По поводу скорости вообще никаких соображений.

Третий аргумент функции SetTimer задает время в миллисекундах через которое будет регулярно вызываться процедура.
Изменяя это время, можно изменять скорость.

0

289

Пётр написал(а):

В смысле, их там ведь 64 или нет?

То есть регулировать кол-во заженных пикселей в строке.
В оригенальной проге это движок "Massa".

Пётр написал(а):

Третий аргумент функции SetTimer задает время в миллисекундах через которое будет регулярно вызываться процедура.
Изменяя это время, можно изменять скорость.

А в каких пределах можно изменять этот аргумент?

Отредактировано max (13.07.2011 20:10:58)

0

290

max написал(а):

А в каких пределах можно изменять этот аргумент?

От десяти до нескольких тысяч.

0

291

Пётр написал(а):

Изменяя это время, можно изменять скорость.

Может я что-то не понял?

Код:
pt.w

Structure DrawInfo
  row.a[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(83,0,148,148,0) ; Очистка рисунка
    For col = 0 To 7
      For row = 0 To 7
        x = 20 + col * 15
        y = 20 + row * 15 
        If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)
      Next
    Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Procedure Timer1()
  Static Draw.DrawInfo, i  
  For i=0 To 7
    Draw\row[i] = Random(255)
  Next i  
  Draw_Image(Draw)
EndProcedure

Procedure Timer2()
  Static Draw.DrawInfo, i
  For i=6 To 0 Step -1
    Draw\row[i+1] = Draw\row[i]
  Next i
  Draw\row[0]=Random(255)
  Draw_Image(Draw)
EndProcedure

OpenWindow(0, 0, 0, 535, 186, "МОДЖЕТ 8x8", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)


OptionGadget(14, 214, 23, 60, 20, "1")
OptionGadget(15, 214, 43, 90, 20, "2")
SetGadgetState(14, 1)
TrackBarGadget(19, 300, 57, 165, 35, 0, 100, #PB_TrackBar_Ticks)
TextGadget(23, 300, 90, 50 ,13,"Скорость")
ImageGadget(0,20,20,148,148, 0)

Repeat
  Event = WaitWindowEvent()
  
  ;{----------События компонентов----------
  If Event=#PB_Event_Gadget
    
    Select EventGadget()
        
      Case 14
        KillTimer_(WindowID(0),2)
        Timer1()
        SetTimer_(WindowID(0),2,pt, @Timer1())
        
      Case 15
        KillTimer_(WindowID(0),2)
        Timer2()
        SetTimer_(WindowID(0),2,pt, @Timer2())    
        
             Case 19
        If EventType()=1
          Select GetGadgetState(19)
            Case 0
              pt=1000
            Case 1

            Case 2

            Case 3

            Case 4

            Case 5

            Case 6

            Case 7

            Case 8

            Case 9

            Case 10

            Case 11

            Case 12

            Case 13

            Case 14

            Case 15

            Case 16

            Case 17
              pt=10
          EndSelect
       EndIf

    EndSelect    
    
  EndIf 
  ;}-------------------------------------
  
Until Event = #PB_Event_CloseWindow

0

292

Как-то так.

Код:
pt.w = 2

Structure DrawInfo
  row.a[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(83,0,148,148,0) ; Очистка рисунка
    For col = 0 To 7
      For row = 0 To 7
        x = 20 + col * 15
        y = 20 + row * 15 
        If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)
      Next
    Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Procedure Timer1()
  Shared pt_counter.w, pt
  Static Draw.DrawInfo, i
    
  If pt_counter<=0
    
    pt_counter = pt
    
    For i=0 To 7
      Draw\row[i] = Random(255)
    Next i  
    Draw_Image(Draw)

  Else
    pt_counter - 1
  EndIf
EndProcedure

Procedure Timer2()
  Shared pt_counter.w, pt
  Static Draw.DrawInfo, i
  If pt_counter<=0
    
    pt_counter = pt
    
    For i=6 To 0 Step -1
      Draw\row[i+1] = Draw\row[i]
    Next i
    Draw\row[0]=Random(255)
    Draw_Image(Draw)
    
  Else
    pt_counter - 1
  EndIf
EndProcedure

OpenWindow(0, 0, 0, 535, 186, "МОДЖЕТ 8x8", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)


OptionGadget(14, 214, 23, 60, 20, "1")
OptionGadget(15, 214, 43, 90, 20, "2")
SetGadgetState(14, 1)
TrackBarGadget(19, 300, 57, 165, 35, 2, 20, #PB_TrackBar_Ticks)
TextGadget(23, 300, 90, 50 ,13,"Скорость")
ImageGadget(0,20,20,148,148, 0)

Repeat
  Event = WaitWindowEvent()
  
  ;{----------События компонентов----------
  If Event=#PB_Event_Gadget
    
    Select EventGadget()
        
      Case 14
        KillTimer_(WindowID(0),2)
        Timer1()
        SetTimer_(WindowID(0),2,10, @Timer1())
        
      Case 15
        KillTimer_(WindowID(0),2)
        Timer2()
        SetTimer_(WindowID(0),2,10, @Timer2())    
        
      Case 19
        pt = GetGadgetState(19)
    EndSelect    
    
  EndIf 
  ;}-------------------------------------
  
Until Event = #PB_Event_CloseWindow

0

293

Спасибо.

0

294

max написал(а):

А что-бы регулировать кол-во светодиодов нужно менять значение Random? И если да, то как это привязать к двжку?

Пётр написал(а):

В смысле, их там ведь 64 или нет?

max написал(а):

То есть регулировать кол-во заженных пикселей в строке.
В оригенальной проге это движок "Massa".

Можно какую-нибудь идею?

0

295

max написал(а):

Можно какую-нибудь идею?

У Василия это как реализовано?
Нужно идею "слизать".

0

296

Пётр написал(а):

Нужно идею "слизать".

Код:
'RND
        If RadioButton1.Checked = True Then
            Timer1.Interval = TrackBar2.Value * 10
            Dim col, row
            For col = 0 To 7
                For row = 0 To 7
                    st_led = (8 * col + row)
                    ellipseRect = New Rectangle(x(st_led), y(st_led), 13, 13)
                    random = Int(Rnd() * (20 - TrackBar1.Value))
                    If random = 0 Then
                        If CheckBox2.Checked = False Then
                            myPath1.AddEllipse(ellipseRect)
                            buf_USB(st_led) = 0
                        Else
                            myPath.AddEllipse(ellipseRect)
                            buf_USB(st_led) = 1
                        End If
                    Else
                        If CheckBox2.Checked = False Then
                            myPath.AddEllipse(ellipseRect)
                            buf_USB(st_led) = 1
                        Else
                            myPath1.AddEllipse(ellipseRect)
                            buf_USB(st_led) = 0
                        End If
                    End If
                Next
            Next
        End If

За скорость отвечает TrackBar1.

0

297

Попробовал сделать:

Код:
pt.w = 2
tp.w
Structure DrawInfo
  row.a[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(83,0,148,148,0) ; Очистка рисунка
    For col = 0 To 7
      For row = 0 To 7
        x = 20 + col * 15
        y = 20 + row * 15 
        If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)
      Next
    Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Procedure Timer1()
  Shared pt_counter.w, pt
  Static Draw.DrawInfo, i
    
  If pt_counter<=0
    
    pt_counter = pt
    
    For i=0 To 7
      Draw\row[i] = Random(5 * (20 - tp))
    Next i  
    Draw_Image(Draw)

  Else
    pt_counter - 1
  EndIf
EndProcedure

Procedure Timer2()
  Shared pt_counter.w, pt
  Static Draw.DrawInfo, i
  If pt_counter<=0
    
    pt_counter = pt
    
    For i=6 To 0 Step -1
      Draw\row[i+1] = Draw\row[i]
    Next i
    Draw\row[0]=Random(5 * (20 - tp))
    Draw_Image(Draw)
    
  Else
    pt_counter - 1
  EndIf
EndProcedure

OpenWindow(0, 0, 0, 535, 186, "МОДЖЕТ 8x8", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)


OptionGadget(14, 214, 23, 60, 20, "1")
OptionGadget(15, 214, 43, 60, 20, "2")
SetGadgetState(14, 1)
TrackBarGadget(19, 300, 57, 165, 35, 2, 100, #PB_TrackBar_Ticks)
TextGadget(23, 300, 90, 50 ,13,"Скорость")
TrackBarGadget(18, 300, 6, 165, 35, 0, 18, #PB_TrackBar_Ticks)
TextGadget(22, 300, 39, 50 ,18,"Пиксели")
ImageGadget(0,20,20,148,148, 0)

Repeat
  Event = WaitWindowEvent()
  
  ;{----------События компонентов----------
  If Event=#PB_Event_Gadget
    
    Select EventGadget()
        
      Case 14
        KillTimer_(WindowID(0),2)
        Timer1()
        SetTimer_(WindowID(0),2,10, @Timer1())
        
      Case 15
        KillTimer_(WindowID(0),2)
        Timer2()
        SetTimer_(WindowID(0),2,10, @Timer2())    
        
      Case 18
        tp = GetGadgetState(18)
        
      Case 19
        pt = GetGadgetState(19)
    EndSelect    
    
  EndIf 
  ;}-------------------------------------
  
Until Event = #PB_Event_CloseWindow

Но как всегда...

Добавил это

Код:
Shared pt_counter.w, pt, tp

заработало, но как-то странно.

Отредактировано max (14.07.2011 16:51:03)

0

298

Как вариант:

Код:
pt.w = 2
tp.w
Structure DrawInfo
  row.a[8]
EndStructure

CreateImage(0,148,148);

Procedure Draw_Image(*Infa.DrawInfo)
  
  If StartDrawing(ImageOutput(0))
    Box(83,0,148,148,0) ; Очистка рисунка
    For col = 0 To 7
      For row = 0 To 7
        x = 20 + col * 15
        y = 20 + row * 15 
        If *Infa\row[row] << col & %10000000
          Color = RGB(255, 102, 00)
        Else
          Color = RGB(102, 102, 102)
        EndIf
        Circle(x, y, 5, Color)
      Next
    Next
    StopDrawing()
  EndIf
  SetGadgetState(0, ImageID(0))
EndProcedure

Procedure Timer1()
  Shared pt_counter.w, pt, tp
  Static Draw.DrawInfo, i
    
  If pt_counter<=0
    
    pt_counter = pt
    
    For i=0 To 7
      For x=1 To 8
        If Random(20) - (20-tp) >= 0
          Draw\row[i] | 1
        Else
          Draw\row[i] & %11111110
        EndIf
        If x<8 : Draw\row[i]<<1 : EndIf
      Next x
    Next i  
    Draw_Image(Draw)

  Else
    pt_counter - 1
  EndIf
EndProcedure

Procedure Timer2()
  Shared pt_counter.w, pt, tp
  Static Draw.DrawInfo, i
  If pt_counter<=0
    
    pt_counter = pt
    
    For i=6 To 0 Step -1
      Draw\row[i+1] = Draw\row[i]
    Next i
    
    For x=1 To 8
      If Random(20) - (20-tp) >= 0
        Draw\row[0] | 1
      Else
        Draw\row[0] & %11111110
      EndIf
      If x<8 : Draw\row[0]<<1 : EndIf
    Next x
    
    Draw_Image(Draw)
    
  Else
    pt_counter - 1
  EndIf
EndProcedure

OpenWindow(0, 0, 0, 535, 186, "МОДЖЕТ 8x8", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)


OptionGadget(14, 214, 23, 60, 20, "1")
OptionGadget(15, 214, 43, 60, 20, "2")
SetGadgetState(14, 1)
TrackBarGadget(19, 300, 57, 165, 35, 2, 100, #PB_TrackBar_Ticks)
TextGadget(23, 300, 90, 50 ,13,"Скорость")
TrackBarGadget(18, 300, 6, 165, 35, 0, 18, #PB_TrackBar_Ticks)
TextGadget(22, 300, 39, 50 ,18,"Пиксели")
ImageGadget(0,20,20,148,148, 0)

Repeat
  Event = WaitWindowEvent()
  
  ;{----------События компонентов----------
  If Event=#PB_Event_Gadget
    
    Select EventGadget()
        
      Case 14
        KillTimer_(WindowID(0),2)
        Timer1()
        SetTimer_(WindowID(0),2,10, @Timer1())
        
      Case 15
        KillTimer_(WindowID(0),2)
        Timer2()
        SetTimer_(WindowID(0),2,10, @Timer2())    
        
      Case 18
        tp = GetGadgetState(18)
        
      Case 19
        pt = GetGadgetState(19)

    EndSelect    
    
  EndIf 
  ;}-------------------------------------
  
Until Event = #PB_Event_CloseWindow

0

299

Спасибо. Самое то.

0

300

А как организовать инверсию? У Василия что-то не нашел. В коде поста 296 за инверсию отвечает CheckBox2.

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Светодиодная матрица - МОДЖЕТ (антигаджет) на Пурике