imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 23.01.2005, 12:59     # 1
Malone32®
Guest
 
Сообщения: n/a

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
 
Старый 23.01.2005, 19:34     # 2
Duh
Member
 
Аватар для Duh
 
Регистрация: 08.04.2002
Адрес: Estonia
Сообщения: 258

Duh Известность не заставит себя ждать
надо было сначала посмотреть что выдаёт функция Rnd...а выдаёт она случайное число от 1 до 0...когда ты умножаешь на целое, то получаешь что-то типа 3.2345346 ...попробуй округлять...Round(File1.ListCount * Rnd)
должно работать...=)
__________________
-Тут была реклама-
Duh вне форума  
Старый 23.01.2005, 20:46     # 3
Malone32®
Guest
 
Сообщения: n/a

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

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

Так что ничего не выйдет с Round!!!!!!
 
Старый 23.01.2005, 22:03     # 4
MaDg
Newbie
 
Регистрация: 30.10.2004
Сообщения: 12

MaDg Путь к славе только начался
В старом, древнем QB в этих случаях в самом начале проги прописывалась команда Randomize Timer.
А вообще универсальная формула для рнд такая: а+rnd*(b-a) выдает случайное число из отрезка [a,b].
MaDg вне форума  
Старый 23.01.2005, 22:34     # 5
Malone32®
Guest
 
Сообщения: n/a

Спасибо, только что получил точно такой же ответ на форуме vbstreets.ru, прога заработала теперь как хочу!!
 
Старый 25.10.2005, 14:48     # 6
Unknown Lamer
Guest
 
Сообщения: n/a

Хм.. Ответ!

Цитата:
Сообщение от 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
 


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:36.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.