| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Неправильная работа exe |
| Автор: neiron 29.4.2007, 23:09 | ||
| Написал незатейливую программулину... Есть форма, есть классмодуль, есть файл ресурсов, есть обычный модуль. На форме поле 10*10. Каждая клетка в зависимости от значения объекта в массиве имеет определёный рисунок. При этом в форме происходит прорисовка, в классмодуле по сути ничего интересного не происходит, в ьодуле происходит следующее:
В общем, создаётся массив 50*50 объектов моего класса. Рэндомно определяются свойства. В чём проблема (быть может зря так много расписывал): запускаю из среды: всё работает как надо - рэндомная генерация, правильное отображение клеток на форме. делаю экзешник, запускаю - Gr(i, j).GrType = 1 только для первого столбца массива. Т.е. в только Gr(1, n) может иметь GrType равный единице, при этом не все объекты первого столбца имеют GrType=1... Соответствено, неправильно отображаются клетки... В чём может быть беда? |
| Автор: neiron 29.4.2007, 23:56 |
| Вместо if...end if заюзал select...end select и всё заработало как надо. Кто-нибудь может сказать в чём дело было? |
| Автор: Tectoder 30.4.2007, 09:43 |
| neiron, к слову, соврешенно незачем передавать в Rnd все время число 1 этим ты только "ухудшаешь" случайность чисел. Ты, вероятно, полагаешь что 1 - это верхняя граница для rnd? Нет, это совсем другое. |
| Автор: neiron 30.4.2007, 10:11 | ||
Tectoder, насколько я помню из школьного курса QB, 1 как раз определяет предел... Или быть может нам неправильно объясняли... Но её оттуда у меня привычка ставить везде rnd(1)... Прочитал доки:
Т.е. как я понимаю задавать 1 или оставлять пустым без разницы... Но если это плохо, то тогда надо 0 задавать? И что это даст? Стартовое число получается всегда 1... Но из-за Randomize Timer (как я понимаю, можно просто randomize?) принцип генерации всё время разный, т.е. тут тогда вообще нет смысла ставить какой-либо аргумент в rnd()? ЗЫ. Извиняюсь за 2 вопроса в одной теме, но всё же)) |
| Автор: neiron 30.4.2007, 22:09 |
| Нет, ну не зря же придумывали параметр... Видимо, где-то когда-то он применяется? Кто-нибудь знает где и когда? И что же всё-таки с if и selecct case? В чём причина ошибки? |
| Автор: bom 1.5.2007, 10:58 | ||||
Я знаю кто это может быть. Обычный чел, каждый день ходит на неинтересную, выматывающую работу, помогает выносить мусор соседям по лестничной клетке, а ночью, устав от трудов праведных, спит, сидя у домашнего компа, положив голову на клавиатуру вместо подушки. Знания, информация беспрепятственно, неконтролируемо перетекают из клавы непосредственно в моск нашего кролика, находящегося в безсознательном состоянии. Так продолжалось какое то время, пока согласно глобальным законам, количество не переросло в качество. Не написав ни строчки кода, не прочитав ни страницы мануала, он становится Избранным. Теперь ему известно все и подвластно - все! Сорри за оффтоп, навеяно известным фильмом Открыл учебник и скопировал тебе следующую инфу:
|
| Автор: neiron 1.5.2007, 22:22 |
| bom, хм... и? если аргумент меньше 0, то последовательность будет типа 0.34363 0.34363 0.34363 0.34363 0.34363 0.34363 если ставить Randomize 1 всегда а если =0? Будет возвращено число вызванное именно в этой строчке ранее? или вообще хоть где в коде? Ничего не понимаю(с) И в чём всё же тайна if...select?))) |
| Автор: bom 2.5.2007, 03:22 | ||
По моему, там все понятно написано... Не знаю, что и как тут можно еще дополнительно разжевывать. Создай процедуру типа:
и долби ее, меняя число, до полного просветления. |
| Автор: Tectoder 2.5.2007, 11:51 | ||
Или вообще, нажми Ctrl+L и напиши там
|
| Автор: neiron 2.5.2007, 12:17 |
| теперь понятно))) спасибо и что же всё же с главным вопросом темы? |