powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Изменение цвета текстового поля
25 сообщений из 50, страница 2 из 2
Изменение цвета текстового поля
    #37316797
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

не придирайся, ясно, что по таймеру, условно можно назвать это циклом, только в качестве Next выступает событие таймера.
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37316800
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMВы не поняли - соль вопроса была в
AndreTMТак как же изменять цвета - "систематически по таймеру" или "в цикле с определенным шагом"?Ибо это основополагающе для разработки алгоритма.

А пример вашей задачи я хоть сейчас нарисую, но об этом, я, вроде, тоже уже...

Понял) по таймеру надо изменять
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37316832
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никто не знает как по таймеру событие запустить :-O
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37316842
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, если у тебя Timer - это объект, то в его эвентах должно быть OnTimer() . куда ты и подвяжешь реакцию... Не забывай после реагирования сбрасывать таймер
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37316851
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMНу, если у тебя Timer - это объект, то в его эвентах должно быть OnTimer() . куда ты и подвяжешь реакцию... Не забывай после реагирования сбрасывать таймер

Я это понимаю)) а пример то все равно нужен)) как его задать то)))
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37316863
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMНу, если у тебя Timer - это объект, то в его эвентах должно быть OnTimer()

Событие называется просто Timer

Автор, щелкни два раза по таймеру и получил процедуру обработки событий
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37317792
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProAndreTMНу, если у тебя Timer - это объект, то в его эвентах должно быть OnTimer()

Событие называется просто Timer

Автор, щелкни два раза по таймеру и получил процедуру обработки событий

Вы наверное вопрос не очень поняли. вот у меня код. Как по этому код сделать что бы цвет хоть начал меняться через оперделенное время... тут он срабатывает разово. Как сделать что бы через 10 секунд цвет поменял.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub Command2_Click()
    Timer1.Enabled = True
    'If R = 0 And G = 0 And Not B = 0 Then B = B - 20
    

End Sub

Private Sub Timer1_Timer()
    Dim R As Byte
    Dim G As Byte
    Dim B As Byte
    R =  0 
    G =  0 
    B =  255 
Text1.BackColor = RGB(R, G, B)
End Sub
А тут он один раз срабатывает ии все. Надо куда то еще эту
Код: plaintext
1.
2.
3.
4.
    R =  255 
    G =  0 
    B =  0 
Text1.BackColor = RGB(R, G, B)
например вписать и что бы поменялся через 10 сек на красный
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37318003
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для автора, который чего-то понимает в основах программирования, хочет разобраться, сам написать программу:

тебе при каждом срабатывания таймера надо уменьшать количество синего и прибавлять количество красного. С каким-то шагом. Через некоторое время синего не останется, а красного будет максимум. Таким образом, цвет плавно поменяется


Для автора с подходом "напишите мне программу":

1000р
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37318110
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProДля автора, который чего-то понимает в основах программирования, хочет разобраться, сам написать программу:

тебе при каждом срабатывания таймера надо уменьшать количество синего и прибавлять количество красного. С каким-то шагом. Через некоторое время синего не останется, а красного будет максимум. Таким образом, цвет плавно поменяется


Для автора с подходом "напишите мне программу":

1000р

Опять про другое... я говорю о том что в таймере ведь должно выполняться несколько событий через определенное время а не так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Private Sub Command2_Click()
    Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()
    Dim R As Byte
    Dim G As Byte
    Dim B As Byte
    R =  0 
    G =  0 
    B =  255 
    Text1.BackColor = RGB(R, G, B)
    Timer2.Enabled = True
End Sub

Private Sub Timer2_Timer()
    Timer1.Enabled = False
    Dim R As Byte
    Dim G As Byte
    Dim B As Byte
    R =  255 
    G =  0 
    B =  0 
    Text1.BackColor = RGB(R, G, B)
End Sub
вот тут цвет меняется но мне нужно что бы был 1 таймер а не 100 штук
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37318292
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а может надо было нажать F1 и почитать, что такое таймер????


таймер периодически выдает свое событие Timer с интервалом, заданным свойством Interval, так что сто таймеров тебе не нужно
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37318618
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Timer1_Timer()
    Static iCounter As Integer
    
    if iCounter Mod  2   =  0   then
         Text1.BackColor = RGB( 255 , 0 , 0 )    
    else
         Text1.BackColor = RGB( 0 , 255 , 0 )    
    end if
    iCounter=iCounter+ 1 
End Sub
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37320400
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-duke
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Timer1_Timer()
    Static iCounter As Integer
    
    if iCounter Mod  2   =  0   then
         Text1.BackColor = RGB( 255 , 0 , 0 )    
    else
         Text1.BackColor = RGB( 0 , 255 , 0 )    
    end if
    iCounter=iCounter+ 1 
End Sub

Спасибо большое) этот код работает.
только мне счас как то это все в цикле надо сделать
Код: plaintext
1.
2.
3.
    For I =  0  To  255  Step  85 
        R = R +  85 
        Text1.BackColor = RGB(R, G, B)
    Next I
Примерно таким образом... только почему то не хочет работать. Один красный цвет выводится переливки цветов нет
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37320402
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Timer1_Timer()
    Static iRedColor As Integer
    
    if iRedColor>  255  Then iRedColor= 0 

    Text1.BackColor = RGB(iRedColor , 0 , 0 ) 

    iRedColor = iRedColor+ 85   
End Sub
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37320468
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JeiDee
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Timer1_Timer()
    Static iRedColor As Integer
    
    if iRedColor>  255  Then iRedColor= 0 

    Text1.BackColor = RGB(iRedColor , 0 , 0 ) 

    iRedColor = iRedColor+ 85   
End Sub

Спасибо, сработало)
У меня только возник вопрос
как к значению iRedColor стандартно задать что бы начиналось от 255
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37320497
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Timer1_Timer()
    Static iRedColor As Integer
    
    If IsEmpty(iRedColor) Then iRedColor= 255 

    if iRedColor<  0  Then iRedColor= 255 

    Text1.BackColor = RGB(iRedColor , 0 , 0 ) 

    iRedColor = iRedColor- 85   
End Sub
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37320504
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так сделал) счас дальше буду разбираться)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub Timer1_Timer()
    Static R As Integer
    Static G As Integer
    Static B As Integer
    If R >  255  Then R =  0 
    If G >  255  Then G =  0 
    If B >  255  Then B =  0 
    If R =  0  And G =  0  And B =  0  Then B =  255 
    Text1.BackColor = RGB(R, G, B)
    If R =  0  And G =  0  And B =  255  Then B =  0 
    B = B +  85 
    
End Sub
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37320515
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee,

давай , пробуй.
Если надоест плодить условия типа If R = 0 And G = 0 And B = 0 , то почитай у Макконела про матрицы условий.
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37320662
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
Private Sub Command2_Click()
    Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()
    Static R As Integer
    Static G As Integer
    Static B As Integer
    Static ROn As Integer
    Static GOn As Integer
    Static BOn As Integer
    Static Nachalo As Integer
    
    If Nachalo =  0  Then B =  255 
    
    Text1.BackColor = RGB(R, G, B)
    
        If BOn =  0  Then
        B = B +  1 
        Nachalo =  1 
        End If
        
        If B >  255  Then
        GOn =  1 
        B =  0 
        BOn =  1 
        End If
        
        If GOn =  1  Then
        G = G +  1 
        End If
        
        If G >  255  Then
        ROn =  1 
        GOn =  0 
        G =  0 
        End If
        
        If ROn =  1  Then
        R = R +  1 
        End If
        
        If R >  255  Then
        R =  0 
        GOn =  0 
        BOn =  0 
        GOn =  0 
        ROn =  0 
        End If
        
End Sub
Вот код он работает очень корректно. Есть только вопрос. Как создать переменную по нажатии клавиши которая будет видна в таймере. Вот пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
[SRC VB]Private Sub Command2_Click()
    Timer1.Enabled = True
    Static pub As Integer
    pub =  1 
End Sub
Private Sub Timer1_Timer()
    Print pub
End Sub
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37320663
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDeeКак создать переменную по нажатии клавиши которая будет видна в таймере. Объявить ее вне процедур (до процедур) - она будет видна во всех процедурах этого модуля
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37320681
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProJeiDeeКак создать переменную по нажатии клавиши которая будет видна в таймере. Объявить ее вне процедур (до процедур) - она будет видна во всех процедурах этого модуля
мне пример нужен
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37320683
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDeeмне пример нужен
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private pub As Integer

Private Sub Command2_Click()
    Timer1.Enabled = True
    pub =  1 
End Sub
Private Sub Timer1_Timer()
    Print pub
End Sub
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37322441
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно работает программа

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
Private Sub Command1_Click()
    Timer1.Enabled = False
    Nachalo = False
    Nachalo1 = False
    If knopka1 = False Then
    Timer1.Enabled = False
    start3 = True
    start4 = False
    Timer1.Enabled = True
    knopka1 = True
    Else
    Timer1.Enabled = False
    start3 = False
    start4 = True
    Timer1.Enabled = True
    knopka1 = False
    End If
End Sub
Private Sub Command2_Click()
    Timer1.Enabled = True
    pub =  1 
End Sub
Private Sub Timer1_Timer()
    Print pub
End Sub
Private Sub Timer1_Timer()
    Static R As Integer
    Static G As Integer
    Static B As Integer
    Static R2 As Integer
    Static G2 As Integer
    Static B2 As Integer
    Static R4 As Integer
    Static G4 As Integer
    Static B4 As Integer
    Static ROn As Integer
    Static GOn As Integer
    Static BOn As Integer
    Static ROn2 As Integer
    Static GOn2 As Integer
    Static BOn2 As Integer
    Static ROn4 As Boolean
    Static GOn4 As Boolean
    Static BOn4 As Boolean
    Static NG2 As Boolean
    Static NR2 As Boolean
    Static NG3 As Boolean
    Static NR3 As Boolean
    Static ROnn2 As Boolean
    Static BOnn2 As Boolean
If start4 = True Then
    If Nachalo1 = False Then
    R4 =  255 
    G4 =  255 
    B4 =  255 
    ROn4 = True
    End If
    
    Text1.ForeColor = RGB(R4, G4, B4)
    
    If ROn4 = True Then
    Nachalo11 = True
    ROnn4 = True
    R4 = R4 -  85  ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Тут пишется что равно 170 и зацикливается. Почему дальше не считает
    End If
    
    If ROnn4 = True Then
        If R4 =  0  Then
        R4 =  255 
        BOn4 = True
        ROn4 = False
        ROnn4 = False
        End If
    End If
    

    
    If BOn4 = True Then
    B4 = B4 -  1 
    BOnn4 = True
    End If
    
    If BOnn4 = True Then
        If B4 =  0  Then
        BOn4 = False
        BOnn4 = False
        Nachalo1 = False
        End If
    End If
End If
End Sub
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37322521
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JeiDee,

Вот это все понаписано ради того, чтоб цвет перешел от синего к красному по таймеру? Или тут еще что-то заложено помимо этого?

(не хочу сломать себе мозг, пытаясь вникнуть в этот код)
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37322531
JeiDee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, но к сожалению другого способа придумать не мог)))
Shocker.ProJeiDee,

Вот это все понаписано ради того, чтоб цвет перешел от синего к красному по таймеру? Или тут еще что-то заложено помимо этого?

(не хочу сломать себе мозг, пытаясь вникнуть в этот код)

Если хотите увидеть результат. то он тут в файле.
Если увидите код наверника он вам взорвет мозг)))
...
Рейтинг: 0 / 0
Изменение цвета текстового поля
    #37322625
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот весь код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private R As Byte, B As Byte

Private Sub Command1_Click()

R =  0 
B =  255 
Timer1.Enabled = True

End Sub
Private Sub Timer1_Timer()

If R =  255  Then
  Timer1.Enabled = False
  Exit Sub
End If
R = R +  1 
B = B -  1 
Text1.BackColor = RGB(R,  0 , B)

End Sub
интервал таймера = 5мс
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Изменение цвета текстового поля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]