![]() |
Rnd В VB
Строю прогу (сменщик обоев для рабочего стола) на VB. Делаю так, чтобы при щелчке на Command1 в Image1 в случайном порядке (rnd) загружалось по одному изображению из List1. Но вот что я замечаю: при каждом запуске проги и щелчке на Command1 почему-то загружаются одни и те же изображения и в той же самой последовательности, а мне надо чтобы с каждым разом загружались РАЗНЫЕ..... Что я не так сделал??
Private Sub Command1_Click() Image1.Picture = LoadPicture(File1.Path & "\" & File1.List(Int(File1.ListCount * Rnd))) End Sub Private Sub Form_Load() File1.Path = "F:\Docs\Pictures\Women" End Sub |
надо было сначала посмотреть что выдаёт функция Rnd...а выдаёт она случайное число от 1 до 0...когда ты умножаешь на целое, то получаешь что-то типа 3.2345346 ...попробуй округлять...Round(File1.ListCount * Rnd)
должно работать...=) :biggrin: |
Вместо Round я использую Int. Она нужна для следующего:
Int (number) - Если number < 0, то округляет его до ближайшего целого. Иначе выделяет целую часть number. Так что ничего не выйдет с Round!!!!!! |
В старом, древнем QB в этих случаях в самом начале проги прописывалась команда Randomize Timer.
А вообще универсальная формула для рнд такая: а+rnd*(b-a) выдает случайное число из отрезка [a,b]. |
Спасибо, только что получил точно такой же ответ на форуме vbstreets.ru, прога заработала теперь как хочу!!
|
Хм.. Ответ!
Цитата:
в Form_load просто надо прописать Private Sub Form_Load() Randomize End Sub |
| Часовой пояс GMT +4, время: 23:44. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.