IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Rnd В VB (http://www.imho.ws/showthread.php?t=78254)

Malone32® 23.01.2005 13:59

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

Duh 23.01.2005 20:34

надо было сначала посмотреть что выдаёт функция Rnd...а выдаёт она случайное число от 1 до 0...когда ты умножаешь на целое, то получаешь что-то типа 3.2345346 ...попробуй округлять...Round(File1.ListCount * Rnd)
должно работать...=) :biggrin:

Malone32® 23.01.2005 21:46

Вместо Round я использую Int. Она нужна для следующего:

Int (number) - Если number < 0, то округляет его до ближайшего целого. Иначе выделяет целую часть number.

Так что ничего не выйдет с Round!!!!!!

MaDg 23.01.2005 23:03

В старом, древнем QB в этих случаях в самом начале проги прописывалась команда Randomize Timer.
А вообще универсальная формула для рнд такая: а+rnd*(b-a) выдает случайное число из отрезка [a,b].

Malone32® 23.01.2005 23:34

Спасибо, только что получил точно такой же ответ на форуме vbstreets.ru, прога заработала теперь как хочу!!

Unknown Lamer 25.10.2005 15:48

Хм.. Ответ!
 
Цитата:

Сообщение от Malone32®
Строю прогу (сменщик обоев для рабочего стола) на 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

Да тут все очень просто:
в 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.