Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.10.2011, 22:25
Petros9n Petros9n вне форума
Прохожий
 
Регистрация: 13.10.2011
Сообщения: 34
Репутация: 10
По умолчанию Случайное значение из listbox

Приветствую, извиняюсь за возможно глупый вопрос, но честное слово упорно юзал поиск, но безрезультатно, вообщем делаю плеер, нужно чтоб по нажатию кнопки воспроизводилась случайная песня из плейлиста, который находится в listbox. То есть мне необходимо чтобы в MediaPlayer1.FileName присваивалось значение выбранное случайным образом из listbox. Подскажите пожалуйста.
Ответить с цитированием
  #2  
Старый 13.10.2011, 22:45
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Функция Random(x) возвращает случайное число в пределах [0..X-1]. Перед первым использованием нужно вызвать Randomize(). Если указать на месте X количество песен в списке, получишь случайный номер, возьмешь элемент списка по этому номеру и будет счастие.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 13.10.2011, 23:33
Petros9n Petros9n вне форума
Прохожий
 
Регистрация: 13.10.2011
Сообщения: 34
Репутация: 10
По умолчанию

Спасибо, действительно так просто. Стыдно что сам не додумался
Ответить с цитированием
  #4  
Старый 14.10.2011, 15:39
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Не все так просто. Если пользоваться тупо рандомом, то вы будете получать периодически одну и ту-же композицию несколько раз. Вам-же придется сформировать альтернативный список с неповторяющимися номерами композиций в случайном порядке.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 14.10.2011, 18:39
Аватар для th_bav
th_bav th_bav вне форума
Новичок
 
Регистрация: 02.12.2010
Сообщения: 74
Репутация: 10
По умолчанию

Вот-вот..., всегда было интересно, как работает этот Random, я считаю, что ПК сам никогда не может что то выбрать, точнее он не может сделать то, что не было запрограмировано, получаеться, что Random берет всегда одну и туже последовательность??? Точнее заранее где то описанную последовательность???
__________________
Глаза боятся - Руки делают...
А еще я не внимательный...
Ответить с цитированием
  #6  
Старый 14.10.2011, 19:20
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Последовательность описывается в виде некоторой формулы, по которой из элемента номер N получают элемент номер N+1, и зацикливается очень не скоро.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #7  
Старый 14.10.2011, 19:46
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Цитата:
Сообщение от th_bav
Вот-вот..., всегда было интересно, как работает этот Random, я считаю, что ПК сам никогда не может что то выбрать, точнее он не может сделать то, что не было запрограмировано, получаеться, что Random берет всегда одну и туже последовательность??? Точнее заранее где то описанную последовательность???
И да и нет. Если вызывать просто Random в программе, то вы при каждом запуске программы будете всегда получать одну и ту-же последовательность. Что-бы этого не происходило, генератор случайных чисел в начале программы надо инициализировать функцией Randomize.
Вот при таких условиях у вас каждый новый запуск программы будет порождать свою последовательность. НО! Даже инициализация генератора случайных чисел не даст вам гарантию уникальности генерируемого значения. Вы можете указать генератору диапазон от 1 до 100 и есть шанс, что вы получите именно 100 совершенно разных чисел, но скорее всего вы получите 80% уникальных чисел и 20% повторяющихся. Вот про такую ситуацию я и говорил ранее.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:16.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025