Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Twister (игра по цветам) волчек 0 на VBA 
V
    Опции темы
kall1sto
Дата 21.5.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Здравствуйте, давние пользователи может и помнят мну, прошу прощения на предыдущей поднятой мной теме не было ответов, начальство не давало время для тестов скрипта. (т.к. там необходимо было тестить на нескольких машинках.
А в данный момент подскажите синтаксис "задержки" на VBA
Но не при  помощи таймера, пробовал Всякие функции типа wait, delay, sleep такого нет. 

Немного поясню : twister  - это игра на которой расположены 24 кружочка 4 цветов, т.е. каждого цвета по 6 штук. Цель ведущий крутит волчек, (на волчке 16 значений), и попадает скажем в цвет красный, часть тела - левая нога, и игрок соответственно должен занять данную позицию этой частью тела. Так вот игра делалась вручную, а не покупалась, то волчка для игры нет. Написал скрипт, который по нажатию кнопки применяет рандом к цвету и рандом к части тела. 
т.е. у меня есть useform, label
одной переменной присваиваю рандом 4 (4 цвета)
второй переменной присваиваю рандом 4 (4 части тела)
потом присваиваю фон для label соотвествующий значению первому рандому
а текст для label соотвествующий значению второму  рандому.
в конце кода стоит Go to на на чало кода, остается только  сделать задержку.
время скажем 15 секунд, что бы игрок успел за данное время переместиться на указанный кружок... вот. извините если чего не понятно спрашивайте/
PM MAIL   Вверх
Akina
Дата 21.5.2008, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Код

Sub Button_Start()
....
Timer1.Timer = 15000 ' 15000 ms
Timer1.Enabled = True
End Sub

Sub Timer1_Timer()
Timer1.Enabled = False
Label1.Foreground = Rnd1
Label1.Background = Rnd2
End Sub



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kall1sto
Дата 22.5.2008, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Цитата(kall1sto @  21.5.2008,  17:32 Найти цитируемый пост)
Но не при  помощи таймера


просто не понимаю данной функции.. вот мой код:
Код

Private Sub CommandButton1_Click()
beg:
Randomize
Rnd1 = Int((4 * Rnd) + 1)
Rnd2 = Int((4 * Rnd) + 1)
If Rnd2 = 1 Then
Label1.Caption = " Левая нога"
End If
If Rnd2 = 2 Then
Label1.Caption = " Левая рука "
End If
If Rnd2 = 3 Then
Label1.Caption = " Правая нога "
End If
If Rnd2 = 4 Then
Label1.Caption = " Правая рука "
End If

If Rnd1 = 1 Then
Label1.BackColor = RGB(255, 255, 0) 'Желтый

End If
If Rnd1 = 2 Then
Label1.BackColor = RGB(255, 0, 0) 'Красный
End If
If Rnd1 = 3 Then
Label1.BackColor = RGB(0, 0, 255) 'Синий
End If
If Rnd1 = 4 Then
Label1.BackColor = RGB(0, 255, 64) 'Зеленый
End If
GoTo beg
End Sub


просьба подсказать принцип действия таймера, просто даже не понимаю в какой очередности оно вызывается... вернее оноу меня вообще не задействовано...

Это сообщение отредактировал(а) kall1sto - 22.5.2008, 11:56
PM MAIL   Вверх
Akina
Дата 22.5.2008, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Код

Option Explicit

Dim Rnd1 As Long
Dim Rnd2 As Long

Private Sub Command1_Click()
Randomize Timer
Rnd1 = Int((4 * Rnd) + 1)
Rnd2 = Int((4 * Rnd) + 1)
Timer1.Interval = 15000  ' 15000 ms
Timer1.Enabled = True
End Sub

Sub Timer1_Timer()
Timer1.Enabled = False
Select Case Rnd1
Case 1
  Label1.Caption = " Левая нога"
Case 2
  Label1.Caption = " Левая рука "
Case 3
  Label1.Caption = " Правая нога "
Case 4
  Label1.Caption = " Правая рука "
End Select
Select Case Rnd2
Case 1
  Label1.BackColor = RGB(255, 255, 0) 'Желтый
Case 2
  Label1.BackColor = RGB(255, 0, 0) 'Красный
Case 3
  Label1.BackColor = RGB(0, 0, 255) 'Синий
Case 4
  Label1.BackColor = RGB(0, 255, 64) 'Зеленый
End Select
End Sub

Цитата(kall1sto @  22.5.2008,  12:55 Найти цитируемый пост)
просто даже не понимаю 

Вам надо начать с самых основ - использование if-if вместо case свидетельствует о значительных пробелах. Как, впрочем, и зацикливание метода.

Это сообщение отредактировал(а) Akina - 22.5.2008, 12:16


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kall1sto
Дата 22.5.2008, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Как я понимаю, просьба поправить:

1. Программа запускается с нажатия кнопки.
2. По нажатию кнопки выполняется функция Private Sub Command1_Click()
3. Получается, что одна из этих строк
Код

Timer1.Interval = 15000  ' 15000 ms
Timer1.Enabled = True
 
вызывает функцию Sub Timer1_Timer()
...



если пишу вот так:

Код

Private Sub CommandButton1_Click()
Randomize Timer
Rnd1 = Int((4 * Rnd) + 1)
Rnd2 = Int((4 * Rnd) + 1)
Timer1.Interval = 1000  ' 15000 ms
Timer1.Enabled = False
End Sub

Sub Timer1_Timer()
Timer1.Enabled = True
Select Case Rnd1
Case 1
  Label1.Caption = " Ëåâàÿ íîãà"
Case 2
  Label1.Caption = " Ëåâàÿ ðóêà "
Case 3
  Label1.Caption = " Ïðàâàÿ íîãà "
Case 4
  Label1.Caption = " Ïðàâàÿ ðóêà "
End Select
Select Case Rnd2
Case 1
  Label1.BackColor = RGB(255, 255, 0) 
Case 2
  Label1.BackColor = RGB(255, 0, 0) 
Case 3
  Label1.BackColor = RGB(0, 0, 255) 
Case 4
  Label1.BackColor = RGB(0, 255, 64) 
End Select
End Sub


то выскакивает ошибка на 5 строке: 
и выделяет слово  Timer1. 
Есть предположение, что для таймера необходимо подключить библиотеку... 


Это сообщение отредактировал(а) kall1sto - 22.5.2008, 14:39
PM MAIL   Вверх
Akina
Дата 22.5.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(kall1sto @  22.5.2008,  15:35 Найти цитируемый пост)
Получается, что одна из этих строк
[skipped] 
вызывает функцию Sub Timer1_Timer()

Нет.
Цитата(kall1sto @  22.5.2008,  15:35 Найти цитируемый пост)
если пишу вот так:

Ну если Вы неспособны даже код перенести в приложение и потом обратно в форум без ошибок - о чем можно дальше говорить...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kall1sto
Дата 22.5.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Впринципе я всегда видел, что  на форумах  вам "влом" отвечать... Просто форум нужен для общения, а не для того что бы пользователей оскорблять (речь идет не про меня, а про кучу других тем), чем таким общением можно добиться? А в частности со мной код я переносил правильно!!!, но из-за неработоспособности я пробовал ставить вызов функции на кнопку... воти все!!! так что прежде чем "посылать" может стоит разобраться? вот был карьерист, одно удовольствие общаться...
PM MAIL   Вверх
kall1sto
Дата 22.5.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



http://www.rapidshare.ru/682817  видео того что я делаю 1,28 метра прошу...

Это сообщение отредактировал(а) kall1sto - 22.5.2008, 16:07
PM MAIL   Вверх
Akina
Дата 22.5.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(kall1sto @  22.5.2008,  16:47 Найти цитируемый пост)
код я переносил правильно!!!, 

То-то у вас строки включения и выключения таймера местами поменялись...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kall1sto
Дата 22.5.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



1. 
Цитата(kall1sto @  22.5.2008,  14:35 Найти цитируемый пост)
если пишу вот так:


2. 
Цитата(kall1sto @  22.5.2008,  15:47 Найти цитируемый пост)
но из-за неработоспособности


Я не хочу заниматься упреками,  пусть буду я не прав... но проблема то осталась


PM MAIL   Вверх
kall1sto
Дата 26.5.2008, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



спасибо, что "подсказали"... реализовал только с помощью autohotkey
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.