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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Label 
:(
    Опции темы
Гость_Гость
Дата 13.5.2005, 21:59 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 13.5.2005, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

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



А переменная А у тебя не объявленна.
Объяви ее в разделе Declaration кода формы: Dim A As Integer



--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Guest
Дата 14.5.2005, 02:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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

НЕ РАБОТАЕТ
  Вверх
Вадян!
Дата 14.5.2005, 04:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Попробуй так
Код

Declaration
 Option explicit    
 Dim a as integer

smile

PM MAIL   Вверх
Guest
Дата 14.5.2005, 06:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
  Вверх
Вадян!
Дата 14.5.2005, 06:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

Option Explicit
Dim A As Integer
______________________________

Private Sub Command1_Click()
Command1.Visible = False
Dim A As Integer
A = Val(Text1.Text)
If A = 1 Then Label1 = "Выпала 1"
If A = 2 Then Label1 = "Выпала 2"
If A = 3 Then Label1 = "Выпала 3"
End Sub
__________________________________

Private Sub Form_Load()
Randomize [A] = Int((3 * Rnd) + 1)
End Sub



Я тут написал пример, но тебе надо кинуть на форму ещё Техт1
и при вводе в него цифру от одного до трёх получается то что хотел
а по другому я пока и сам не знаю как???
Да относительно
Цитата

выдает ошибку !!! Declaration

Тебе не надо писать это слово, тебе надо зайти в
(General) (Declaration) и там прописать
Option Explicit
Dim A As Integer
smile






PM MAIL   Вверх
Гость_Run-time Error
Дата 14.5.2005, 19:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Уважаемый Гость. Перед тем, как заниматься программированием, советую хоть чуть-чуть почитать книги! А то в последнее время столько ...тупых... вопросов от гостей стало поступать... прямо жуть smile
  Вверх
Гость_Legion
Дата 15.5.2005, 05:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а для чего еще форум?
  Вверх
Voldemar2004
Дата 15.5.2005, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

а для чего еще форум?


Если тебе дали на работе задачу, ты ее решаешь и что-то не получается - тогда на форум, а вопросы, "как мне поместить Label на форму" - для этого есть учебники/справочники.


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Вадян!
Дата 15.5.2005, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Voldemar2004
Цитата
"как мне поместить Label на форму"

Да ладно не злись он вроде не о том, лучше если знаеш подскажи как без Техт1 обойтись smile
Цитата

Я тут написал пример, но тебе надо кинуть на форму ещё Техт1
и при вводе в него цифру от одного до трёх получается то что хотел
а по другому я пока и сам не знаю как???
smile

PM MAIL   Вверх
Voldemar2004
Дата 15.5.2005, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

Есть форма, на ней Label1 и кнопка Command1
При запуске программы переменной <А> присваивается случайное число от 1 до 3
При нажатии на кнопку Command1 если А=1 кнопка исчезает и Label1="Выпала 1"
если А=2 кнопка исчезает и Label1="Выпала 2"
если А=2 кнопка исчезает и Label1="Выпала 3"


Вадян!, тебе не кажется, что

Код

Randomize [A] = Int((3 * Rnd) + 1)    


будет всегда выдавать одно и тоже значение равное нулю.

Цитата

лучше если знаеш подскажи как без Техт1 обойтись


Код

Option Explicit
Dim A As Integer

Private Sub Command1_Click()

Select Case A
Case 1
Label1.Caption = "Выпала 1"
Case 2
Label1.Caption = "Выпала 2"
Case 3
Label1.Caption = "Выпала 3"
End Select

If A = 1 Then Command1.Visible = False
End Sub

Private Sub Form_Load()
Randomize [A] = Int((3 * Rnd) + 1)
End Sub


Не очень понял зачем вам TextBox, вы в нем что ли хотели выводить "Выпала 3", "Выпала 2" и т.п.?



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Gannibal
Дата 15.5.2005, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



может вот так вот уже или я чегото непонял?
Код

Option Explicit
Dim A As Integer

Private Sub Command1_Click()
Command1.Visible = False
If A = 1 Then Label1.Caption = "1"
If A = 2 Then Label1.Caption = "2"
If A = 3 Then Label1.Caption = "3"
End Sub

Private Sub Form_Load()
Randomize: A = Int((3 * Rnd) + 1)
End Sub


а то я чегото непонял что за строчка у вас такая
Цитата
Randomize [A] = Int((3 * Rnd) + 1)

чёто она помойму неработает smile или я отупeл за всё ето время smile

Это сообщение отредактировал(а) M.E.G.U.S - 15.5.2005, 14:17


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Guest
Дата 15.5.2005, 17:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 15.5.2005, 17:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











то есть вот так

Private Sub BB1_Click()
BB1.Visible = False
If LB1 = "B" Then Label5 = "Найден выход.": level = level + 1: GoTo XXX100:
End Sub

XXX100:
текст программы.....
  Вверх
cardinal
Дата 15.5.2005, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Цитата
GoTo can branch only to lines within the procedure where it appears.

и вообще
Цитата
Note  Too many GoTo statements can make code difficult to read and debug. Use structured controlstatements (Do...Loop, For...Next, If...Then...Else, Select Case) whenever possible.

А можешь просто сделать отдельную функцию и выполнять ее по условию...

Модератор: Пожалуйста, один топик - один вопрос.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Voldemar2004
Дата 15.5.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

чёто она помойму неработает  или я отупeл за всё ето время

M.E.G.U.S, ты прав, мне тоже кажется ерунда какая-то. И смысла задачи то я не понял. smile
Гость_Гость делает какую-то игру. smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Gannibal
Дата 15.5.2005, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вот так вот должно быть
Код

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


кстати Гость у тебя там ошибка в этой строчке
Цитата(Guest @ 15.5.2005, 16:19)
If LB1 = "B" Then Label5 = "Найден выход.": level = level + 1: GoTo XXX100:


там в конце недложно быт ":" вот так вот

Добавлено @ 18:31
Цитата(cardinal @ 15.5.2005, 16:45)
А можешь просто сделать отдельную функцию и выполнять ее по условию...


полностью согласен smile



--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Voldemar2004
Дата 15.5.2005, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

GoTo XXX100


А это зачем?


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
cardinal
Дата 15.5.2005, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Цитата(Voldemar2004 @ 15.5.2005, 16:03)
Гость_Гость делает какую-то игру.

Ходилку по лабиринту smile
Добавлено @ 21:09
Цитата(Voldemar2004 @ 15.5.2005, 17:52)
А это зачем?

В смысле?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Gannibal
Дата 15.5.2005, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(cardinal @ 15.5.2005, 20:09)
Цитата (Voldemar2004 @ 15.5.2005, 16:03)
Гость_Гость делает какую-то игру.

Ходилку по лабиринту smile


а может стрелялку какую нибудь smile здесь непонять smile ладно оставивим его.. может он нам сам скажет что он делает

Цитата(cardinal @ 15.5.2005, 20:09)
Добавлено @ 20:09
Цитата (Voldemar2004 @ 15.5.2005, 17:52)
А это зачем?

В смысле?


он наверное пошутил как я понял smile



--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Guest
Дата 16.5.2005, 07:14 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 16.5.2005, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

В смысле?


Ну зачем Goto, если есть операторы If else end if, elseif, select case end select ?
Потом замучаешься крутить колесо мыши и бегать по экрану глазами в пойсках этой несчастной метки, связанной с Goto. smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Guest
Дата 16.5.2005, 12:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











XXX100:
Print "ura"

его нужно вынести куда то и написать один раз. но обращаться программа будет туда из разных мест.
как сделать ??
  Вверх
Voldemar2004
Дата 16.5.2005, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата

его нужно вынести куда то и написать один раз. но обращаться программа будет туда из разных мест.
как сделать ??


Module:
Код

Sub Message()
MsgBox ("Ja-Ja, Zergut")
End Sub


Form1:
Код

Private Sub Command1_Click()
' your code this
Call Message
' text's heap
End Sub


Form2:
Код

Private Sub Command1_Click()
' your code this
Call Message
' text's heap
End Sub

smile

Guest, что ты пишешь, если не секрет? Игру? smile

Это сообщение отредактировал(а) Voldemar2004 - 16.5.2005, 15:46


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Guest
Дата 16.5.2005, 23:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а зачем загружать форму2 ?
  Вверх
cardinal
Дата 17.5.2005, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Ну, Guest, это же просто пример smile, а про GoTo забудь, фигня это...

Давай уж регистрируйся, хватит быть гостем smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Guest
Дата 17.5.2005, 18:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


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
Дата 17.5.2005, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Для начала сделай функцию и вставь туда повторяющийся кусок:
Код

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

Как объявлять функции и т.д. найдешь тут:
http://vb.hut.ru/vbnovice/les1.htm
А вообще я тебе про это 15.05. говорил. Самому не хочется мозгами пораскинуть?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Guest
Дата 18.5.2005, 05:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Так бы сразу и сказал, что делается это так:

Private Sub BA1_Click()
BA1.Visible = False
... текст программы...
Call XXX100
End Sub


Public Function XXX100() As Long
....Часто используемый код....
End Function

а то все вокруг да окола... smile smile
  Вверх
vADIKg
Дата 18.5.2005, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не скажу, что я спец, но это работает. --Resize_Images_Alt_Text--Нужно только накопировать в форме нужное количество кнопок и меток. Код вообще не нужно трогать.

И все.

Тестил при 100 - работает

Код

' Èìååì array èç Command1 - êíîïêè
'       array èç Label1   - ïîìåòêè
'       Label2            - óêàçûâàåò óðîâåíü
'       Label3            - ïîêàçûâàåò êîë-âî î÷êîâ

Option Explicit
Dim klad As Integer
Dim vixod As Integer
Dim ochki As Integer
Dim level As Integer
Dim btnsNumber As Integer ' êîëè÷åñòâî êíîïåíåé
Dim i As Integer

Private Sub Form_Load()
    level = 0
    ochki = 0
    btnsNumber = Command1.Count ' [font=arial]ãîâîðèì, ñêîêà êíîïîê èìååòñÿ[/font]    Call Update
    Label3.Caption = "0"
End Sub

Private Sub Update()
    level = level + 1
    Label2.Caption = Str(level)
    For i = 0 To btnsNumber - 1
        Command1(i).Visible = True
        Label1(i).Caption = ""
    Next
    Randomize
    Do
        klad = Int(btnsNumber * Rnd)
        vixod = Int(btnsNumber * Rnd)
    Loop While klad = vixod
    Label1(klad).Caption = "K"
    Label1(vixod).Caption = "K"
'    MsgBox Str(klad) & " " & Str(vixod) ' ïîäñêàçêà
End Sub

Private Sub Command1_Click(Index As Integer)
    Select Case Index
        Case klad
            MsgBox "Klad"
            Command1(Index).Visible = False
            ochki = ochki + 100
            Label3.Caption = Str(ochki)
        Case vixod
            MsgBox "Vixod"
            Call Update
        Case Else
            Command1(Index).Visible = False
    End Select
End Sub




Это сообщение отредактировал(а) vADIKg - 18.5.2005, 16:14
PM MAIL   Вверх
cardinal
Дата 18.5.2005, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

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



Цитата(vADIKg @ 18.5.2005, 14:11)
Нужно только накопировать в форме нужное количество кнопок и меток

И сделать из них массив!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
vADIKg
Дата 19.5.2005, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(cardinal @ 18.5.2005, 18:25)
И сделать из них массив!

Да, конечно. В камментах написано, что имеем массивы Command1 и Label1. Вначале создаем массивчики объектов, а дальше copy-paste, пока не надоест.
PM MAIL   Вверх
Exception
Дата 20.5.2005, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



[offtop]
Цитата(cardinal @ 15.5.2005, 22:09)
Ходилку по лабиринту

скорее "запутывалку форумчан" smile [/offtop]
PM   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


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

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


 




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


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

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