Доброго времени суток! Делаю имитатор контроля скорости на форме и стоит задача нажав на кнопку (СommаndButton), скорость в окошке (textbox) начала подниматься с заданным ускорением a от значения v1 до значения v2. Грубо говоря, чтобы значение скорости за 5 секунд поднялось с 0 до 60.
Доброго времени суток! Делаю имитатор контроля скорости на форме и стоит задача нажав на кнопку (СommаndButton), скорость в окошке (textbox) начала подниматься с заданным ускорением a от значения v1 до значения v2. Грубо говоря, чтобы значение скорости за 5 секунд поднялось с 0 до 60.Паштет
Сообщение отредактировал Паштет - Суббота, 17.09.2022, 11:33
#If VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'For 32 Bit Systems #End If
[/vba]
[vba]
Код
Dim flag As Boolean Const tbStart& = 10 Const tbEnd& = 60 Const SleepTime& = 100
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) flag = True: TB End Sub Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) flag = False: TB End Sub
Sub TB() If Len(Me.TextBox1) = 0 Then Me.TextBox1 = tbStart Do While flag If Val(Me.TextBox1) >= tbEnd Then Exit Do Me.TextBox1 = Val(Me.TextBox1) + 1 Sleep (SleepTime) Me.Repaint DoEvents Loop End Sub
[/vba]
[vba]
Код
#If VBA7 Then Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems #Else Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'For 32 Bit Systems #End If
[/vba]
[vba]
Код
Dim flag As Boolean Const tbStart& = 10 Const tbEnd& = 60 Const SleepTime& = 100
Private Sub CommandButton1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) flag = True: TB End Sub Private Sub CommandButton1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) flag = False: TB End Sub
Sub TB() If Len(Me.TextBox1) = 0 Then Me.TextBox1 = tbStart Do While flag If Val(Me.TextBox1) >= tbEnd Then Exit Do Me.TextBox1 = Val(Me.TextBox1) + 1 Sleep (SleepTime) Me.Repaint DoEvents Loop End Sub
Поскольку вы не считаете целесообразным приложить пример, по умолчанию предполагается, что вы в состоянии самостоятельно вставить отдельные фрагменты кода в нужные места.
Поскольку вы не считаете целесообразным приложить пример, по умолчанию предполагается, что вы в состоянии самостоятельно вставить отдельные фрагменты кода в нужные места.RAN
Я тоже так думал. Но что-то пошло не так. Поэтому прикрепил файл. Пытался привязать данный код к кнопке "41" (speed41). Ваши строки все прописаны, но отменено действие, так что будет в коде выделено зеленым.
Я тоже так думал. Но что-то пошло не так. Поэтому прикрепил файл. Пытался привязать данный код к кнопке "41" (speed41). Ваши строки все прописаны, но отменено действие, так что будет в коде выделено зеленым.Паштет
Паштет, вопрос показался мне интересным, поэтому я им занялся. Искать в вашем рабочем файле кнопку и текстбокс - не интересно. Код не случайно разделен на 2 части. 1 часть должна быть в стандартном модуле. То, что интересно - помощь, то что не интересно - РАБОТА! Если ты пенсионер, ну ее нахер, эту работу! Лапу соси! И мозги тренируй, чтобы в байдена не превратиться.
Паштет, вопрос показался мне интересным, поэтому я им занялся. Искать в вашем рабочем файле кнопку и текстбокс - не интересно. Код не случайно разделен на 2 части. 1 часть должна быть в стандартном модуле. То, что интересно - помощь, то что не интересно - РАБОТА! Если ты пенсионер, ну ее нахер, эту работу! Лапу соси! И мозги тренируй, чтобы в байдена не превратиться.RAN