![]() |
|
Модераторы: Akina |
![]()
|
|
| Гость_Гость |
|
|||
|
Unregistered |
Есть форма, на ней Label1 и кнопка Command1
При запуске программы переменной <А> присваивается случайное число от 1 до 3 При нажатии на кнопку Command1 если А=1 кнопка исчезает и Label1="Выпала 1" если А=2 кнопка исчезает и Label1="Выпала 2" если А=2 кнопка исчезает и Label1="Выпала 3" Private Sub Form_Load() Randomize A = Int((3 * Rnd) + 1) End Sub Private Sub Command1_Click() Command1.Visible = False If A = 1 Then Label1 = "Выпала 1" If A = 2 Then Label1 = "Выпала 2" If A = 3 Then Label1 = "Выпала 3" End Sub Но при нажатии на Command1, Label1 остается пустой... в чем проблема? |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
А переменная А у тебя не объявленна.
Объяви ее в разделе Declaration кода формы: Dim A As Integer -------------------- Я желаю всем Счастья! |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Declaration
Dim A As Integer Private Sub Form_Load() Randomize A = Int((3 * Rnd) + 1) End Sub Private Sub Command1_Click() Command1.Visible = False If A = 1 Then Label1 = "Выпала 1" If A = 2 Then Label1 = "Выпала 2" If A = 3 Then Label1 = "Выпала 3" End Sub НЕ РАБОТАЕТ |
|||
|
||||
| Вадян! |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 27.3.2005 Репутация: нет Всего: нет |
Попробуй так
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Declaration
Option Explicit Dim a As Integer Private Sub Form_Load() Randomize a = Int((3 * Rnd) + 1) End Sub Private Sub Command1_Click() Command1.Visible = False If a = 1 Then Label1 = "Выпала 1" If a = 2 Then Label1 = "Выпала 2" If a = 3 Then Label1 = "Выпала 3" End Sub выдает ошибку !!! Declaration |
|||
|
||||
| Вадян! |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 27.3.2005 Репутация: нет Всего: нет |
Я тут написал пример, но тебе надо кинуть на форму ещё Техт1 и при вводе в него цифру от одного до трёх получается то что хотел а по другому я пока и сам не знаю как??? Да относительно
Тебе не надо писать это слово, тебе надо зайти в (General) (Declaration) и там прописать Option Explicit Dim A As Integer |
||||
|
|||||
| Гость_Run-time Error |
|
|||
|
Unregistered |
Уважаемый Гость. Перед тем, как заниматься программированием, советую хоть чуть-чуть почитать книги! А то в последнее время столько ...тупых... вопросов от гостей стало поступать... прямо жуть
|
|||
|
||||
| Гость_Legion |
|
|||
|
Unregistered |
а для чего еще форум?
|
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Если тебе дали на работе задачу, ты ее решаешь и что-то не получается - тогда на форум, а вопросы, "как мне поместить Label на форму" - для этого есть учебники/справочники. -------------------- i_i (';') (V) ![]() |
|||
|
||||
| Вадян! |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 27.3.2005 Репутация: нет Всего: нет |
Voldemar2004
Да ладно не злись он вроде не о том, лучше если знаеш подскажи как без Техт1 обойтись
|
||||
|
|||||
| Voldemar2004 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Вадян!, тебе не кажется, что
будет всегда выдавать одно и тоже значение равное нулю.
Не очень понял зачем вам TextBox, вы в нем что ли хотели выводить "Выпала 3", "Выпала 2" и т.п.? -------------------- i_i (';') (V) ![]() |
||||||||
|
|||||||||
| Gannibal |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 742 Регистрация: 15.4.2003 Где: 010101 Репутация: 18 Всего: 17 |
может вот так вот уже или я чегото непонял?
а то я чегото непонял что за строчка у вас такая
чёто она помойму неработает Это сообщение отредактировал(а) M.E.G.U.S - 15.5.2005, 14:17 -------------------- Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить! |
||||
|
|||||
| Guest |
|
|||
|
Unregistered |
Private Sub BB1_Click() BB1.Visible = False If LB1 = "B" Then Label5 = "Найден выход.": level = level + 1: GoTo XXX100: End Sub GoTo XXX100: - если поместить за пределами Private Sub BB1_Click() .... End Sub то переход туда не происходит. Почему ? |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
то есть вот так
Private Sub BB1_Click() BB1.Visible = False If LB1 = "B" Then Label5 = "Найден выход.": level = level + 1: GoTo XXX100: End Sub XXX100: текст программы..... |
|||
|
||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
и вообще
А можешь просто сделать отдельную функцию и выполнять ее по условию... Модератор: Пожалуйста, один топик - один вопрос. -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
M.E.G.U.S, ты прав, мне тоже кажется ерунда какая-то. И смысла задачи то я не понял. Гость_Гость делает какую-то игру. -------------------- i_i (';') (V) ![]() |
|||
|
||||
| Gannibal |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 742 Регистрация: 15.4.2003 Где: 010101 Репутация: 18 Всего: 17 |
вот так вот должно быть
кстати Гость у тебя там ошибка в этой строчке
там в конце недложно быт ":" вот так вот Добавлено @ 18:31
полностью согласен -------------------- Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить! |
||||||
|
|||||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
А это зачем? -------------------- i_i (';') (V) ![]() |
|||
|
||||
| cardinal |
|
||||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Ходилку по лабиринту Добавлено @ 21:09
В смысле? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
||||
|
|||||
| Gannibal |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 742 Регистрация: 15.4.2003 Где: 010101 Репутация: 18 Всего: 17 |
а может стрелялку какую нибудь
он наверное пошутил как я понял -------------------- Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить! |
||||
|
|||||
| Guest |
|
|||
|
Unregistered |
Option Explicit
Private Sub Command1_Click() Dim level Command1.Visible = False If Label1.Caption = "B" Then Label5.Caption = "Íàéäåí âûõîä.": level = level + 1: GoTo XXX100 XXX100: Print "ura" End Sub это понятно. но если есть Private Sub Command1_Click() Private Sub Command2_Click() ..... Private Sub Command100_Click() и что бы каждый раз не писать XXX100: Print "ura" его нужно вынести куда то и написать один раз. но обращаться программа будет туда из разных мест. |
|||
|
||||
| Voldemar2004 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Ну зачем Goto, если есть операторы If else end if, elseif, select case end select ? Потом замучаешься крутить колесо мыши и бегать по экрану глазами в пойсках этой несчастной метки, связанной с Goto. -------------------- i_i (';') (V) ![]() |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
XXX100:
Print "ura" его нужно вынести куда то и написать один раз. но обращаться программа будет туда из разных мест. как сделать ?? |
|||
|
||||
| Voldemar2004 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
Module:
Form1:
Form2:
Guest, что ты пишешь, если не секрет? Игру? Это сообщение отредактировал(а) Voldemar2004 - 16.5.2005, 15:46 -------------------- i_i (';') (V) ![]() |
||||||||
|
|||||||||
| Guest |
|
|||
|
Unregistered |
а зачем загружать форму2 ?
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Ну, Guest, это же просто пример
Давай уж регистрируйся, хватит быть гостем -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Блин, вот код програмки
' Имеется форма на которой 4 label (LA1, LA2, LB1, LB2) ' На них наложены 4 кнопки (BA1, BA2, BB1, BB2) ' Выпадает случайное число для К (клад) ' Выпадает случайное число для В (выход) ' Если игрок нажал кнопку под которой ничего нет, игра продолжается. ' Если игрок попал на К - добавляется 100 очков ' Если игрок попал на В - происходит смена уровня (+1), все кнопки становятся видимыми. Option Explicit Dim klad As Integer Dim vixod As Integer Dim ochki As Integer Dim level As Integer Private Sub Form_Load() level = 1 Label505 = 1 XXX100: ' все кнопки видимые BA1.Visible = True BA2.Visible = True BB1.Visible = True BB2.Visible = True ' обнуление вида ячеек LA1 = "" LA2 = "" LB1 = "" LB2 = "" ' определяем в какой ячейке клад и присваиваем выпавшему номеру ячейки букву К Randomize klad = Int((4 * Rnd) + 1) If klad = 1 Then LA1 = "K" If klad = 2 Then LA2 = "K" If klad = 3 Then LB1 = "K" If klad = 4 Then LB2 = "K" ' определяем в какой ячейке выход и присваиваем выпавшему номеру ячейки букву В Randomize vixod = Int((4 * Rnd) + 1) If vixod = 1 Then LA1 = "B" If vixod = 2 Then LA2 = "B" If vixod = 3 Then LB1 = "B" If vixod = 4 Then LB2 = "B" ' проверяем что бы не совпали ячейки выхода и клада. Если совпали, делаем расчет заново. If klad = vixod Then GoTo XXX100 End Sub ' Нажата кнопка BA1. Кнопка исчезает показывая что под ней. Private Sub BA1_Click() BA1.Visible = False ' результат того что под кнопкой. Если под кнопкой К добавляем 100 очков, отображаем результат. If LA1 = "K" Then Label501 = "Найден клад. + 100": ochki = ochki + 100: Label503 = ochki If LA1 = "B" Then Label501 = "Найден выход.": level = level + 1: Label505 = level: GoTo XXX200 GoTo XXX205 XXX200: ' все кнопки видимые BA1.Visible = True BA2.Visible = True BB1.Visible = True BB2.Visible = True ' обнуление вида ячеек LA1 = "" LA2 = "" LB1 = "" LB2 = "" ' определяем в какой ячейке клад и присваиваем выпавшему номеру ячейки букву К Randomize klad = Int((4 * Rnd) + 1) If klad = 1 Then LA1 = "K" If klad = 2 Then LA2 = "K" If klad = 3 Then LB1 = "K" If klad = 4 Then LB2 = "K" ' определяем в какой ячейке выход и присваиваем выпавшему номеру ячейки букву В Randomize vixod = Int((4 * Rnd) + 1) If vixod = 1 Then LA1 = "B" If vixod = 2 Then LA2 = "B" If vixod = 3 Then LB1 = "B" If vixod = 4 Then LB2 = "B" ' проверяем что бы не совпали ячейки выхода и клада. Если совпали, делаем расчет заново. If klad = vixod Then GoTo XXX200 XXX205: End Sub ' Нажата кнопка BA2. Кнопка исчезает показывая что под ней. Private Sub BA2_Click() BA2.Visible = False ' результат того что под кнопкой. Если под кнопкой К добавляем 100 очков, отображаем результат. If LA2 = "K" Then Label501 = "Найден клад. + 100": ochki = ochki + 100: Label503 = ochki If LA2 = "B" Then Label501 = "Найден выход.": level = level + 1: Label505 = level: GoTo XXX200 GoTo XXX205 XXX200: ' все кнопки видимые BA1.Visible = True BA2.Visible = True BB1.Visible = True BB2.Visible = True ' обнуление вида ячеек LA1 = "" LA2 = "" LB1 = "" LB2 = "" ' определяем в какой ячейке клад и присваиваем выпавшему номеру ячейки букву К Randomize klad = Int((4 * Rnd) + 1) If klad = 1 Then LA1 = "K" If klad = 2 Then LA2 = "K" If klad = 3 Then LB1 = "K" If klad = 4 Then LB2 = "K" ' определяем в какой ячейке выход и присваиваем выпавшему номеру ячейки букву В Randomize vixod = Int((4 * Rnd) + 1) If vixod = 1 Then LA1 = "B" If vixod = 2 Then LA2 = "B" If vixod = 3 Then LB1 = "B" If vixod = 4 Then LB2 = "B" ' проверяем что бы не совпали ячейки выхода и клада. Если совпали, делаем расчет заново. If klad = vixod Then GoTo XXX200 XXX205: End Sub ' Нажата кнопка BB1. Кнопка исчезает показывая что под ней. Private Sub BB1_Click() BB1.Visible = False ' результат того что под кнопкой. Если под кнопкой К добавляем 100 очков, отображаем результат. If LB1 = "K" Then Label501 = "Найден клад. + 100": ochki = ochki + 100: Label503 = ochki If LB1 = "B" Then Label501 = "Найден выход.": level = level + 1: Label505 = level: GoTo XXX200 GoTo XXX205 XXX200: ' все кнопки видимые BA1.Visible = True BA2.Visible = True BB1.Visible = True BB2.Visible = True ' обнуление вида ячеек LA1 = "" LA2 = "" LB1 = "" LB2 = "" ' определяем в какой ячейке клад и присваиваем выпавшему номеру ячейки букву К Randomize klad = Int((4 * Rnd) + 1) If klad = 1 Then LA1 = "K" If klad = 2 Then LA2 = "K" If klad = 3 Then LB1 = "K" If klad = 4 Then LB2 = "K" ' определяем в какой ячейке выход и присваиваем выпавшему номеру ячейки букву В Randomize vixod = Int((4 * Rnd) + 1) If vixod = 1 Then LA1 = "B" If vixod = 2 Then LA2 = "B" If vixod = 3 Then LB1 = "B" If vixod = 4 Then LB2 = "B" ' проверяем что бы не совпали ячейки выхода и клада. Если совпали, делаем расчет заново. If klad = vixod Then GoTo XXX200 XXX205: End Sub ' Нажата кнопка BB2. Кнопка исчезает показывая что под ней. Private Sub BB2_Click() BB2.Visible = False ' результат того что под кнопкой. Если под кнопкой К добавляем 100 очков, отображаем результат. If LB2 = "K" Then Label501 = "Найден клад. + 100": ochki = ochki + 100: Label503 = ochki If LB2 = "B" Then Label501 = "Найден выход.": level = level + 1: Label505 = level: GoTo XXX200 GoTo XXX205 XXX200: ' все кнопки видимые BA1.Visible = True BA2.Visible = True BB1.Visible = True BB2.Visible = True ' обнуление вида ячеек LA1 = "" LA2 = "" LB1 = "" LB2 = "" ' определяем в какой ячейке клад и присваиваем выпавшему номеру ячейки букву К Randomize klad = Int((4 * Rnd) + 1) If klad = 1 Then LA1 = "K" If klad = 2 Then LA2 = "K" If klad = 3 Then LB1 = "K" If klad = 4 Then LB2 = "K" ' определяем в какой ячейке выход и присваиваем выпавшему номеру ячейки букву В Randomize vixod = Int((4 * Rnd) + 1) If vixod = 1 Then LA1 = "B" If vixod = 2 Then LA2 = "B" If vixod = 3 Then LB1 = "B" If vixod = 4 Then LB2 = "B" ' проверяем что бы не совпали ячейки выхода и клада. Если совпали, делаем расчет заново. If klad = vixod Then GoTo XXX200 XXX205: End Sub ------------------------------------------------------------------------------------------------------------------------------------------------------------- На форме размещено 4 кнопки, но по замыслу их должно 400 (поле 20 х 20), как видите из программы ее часть повторяется при нажатии каждой кнопки. -------------------------------------------------------------------------------------------------------------------------------------------------------------- XXX200: ' все кнопки видимые BA1.Visible = True BA2.Visible = True BB1.Visible = True BB2.Visible = True ' обнуление вида ячеек LA1 = "" LA2 = "" LB1 = "" LB2 = "" ' определяем в какой ячейке клад и присваиваем выпавшему номеру ячейки букву К Randomize klad = Int((4 * Rnd) + 1) If klad = 1 Then LA1 = "K" If klad = 2 Then LA2 = "K" If klad = 3 Then LB1 = "K" If klad = 4 Then LB2 = "K" ' определяем в какой ячейке выход и присваиваем выпавшему номеру ячейки букву В Randomize vixod = Int((4 * Rnd) + 1) If vixod = 1 Then LA1 = "B" If vixod = 2 Then LA2 = "B" If vixod = 3 Then LB1 = "B" If vixod = 4 Then LB2 = "B" ' проверяем что бы не совпали ячейки выхода и клада. Если совпали, делаем расчет заново. If klad = vixod Then GoTo XXX200 ---------------------------------------------------------------------------------------------------------------------------------------------------------- Если их 4 то это еще ладно, но когда их 400, то код увеличится до офигенных размеров. Вышеуказанная часть должна быть написана 1 раз, а не 400 раз (по 1000 строк в каждой ). Так вот как это сделать? Куда и как прописать этот кусочек кода, чтобы к нему обращаться при нажатии одной из 400 кнопок ??? |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Для начала сделай функцию и вставь туда повторяющийся кусок:
Как объявлять функции и т.д. найдешь тут: http://vb.hut.ru/vbnovice/les1.htm А вообще я тебе про это 15.05. говорил. Самому не хочется мозгами пораскинуть? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Так бы сразу и сказал, что делается это так:
Private Sub BA1_Click() BA1.Visible = False ... текст программы... Call XXX100 End Sub Public Function XXX100() As Long ....Часто используемый код.... End Function а то все вокруг да окола... |
|||
|
||||
| vADIKg |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 18.5.2005 Репутация: нет Всего: нет |
Не скажу, что я спец, но это работает.
И все. Тестил при 100 - работает
Это сообщение отредактировал(а) vADIKg - 18.5.2005, 16:14 |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
И сделать из них массив! -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| vADIKg |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 18.5.2005 Репутация: нет Всего: нет |
Да, конечно. В камментах написано, что имеем массивы Command1 и Label1. Вначале создаем массивчики объектов, а дальше copy-paste, пока не надоест. |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
[offtop]
скорее "запутывалку форумчан" |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |