Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2009, 12:54   #1
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
Вопрос random и создание масива.

Привет. Хочется сделать для плеера разбросаное воисспроизведение треков, но никак не получается: вот код:
Код:
if scheckbox2.Checked = true then
for i:= 0 to listbox1.Items.Count - 1 do
begin
int := 1 + random(listbox1.ItemIndex);
listbox1.ItemIndex := int;
bassplayer1.Open(listbox1.Items[listbox1.itemindex]);
bassplayer1.Play
end;
но он не работает. Что нужно добавить или дописать. Заранее спасибо.
blackstersl вне форума Ответить с цитированием
Старый 04.05.2009, 13:04   #2
P_KEV
 
Регистрация: 03.05.2009
Сообщений: 4
По умолчанию

Не работает random? В твоем случае оно будет выдавать одни и те же числа. Перед int := 1 + random(listbox1.ItemIndex); на пиши randomize; - генератор псевдослучайных чисел, тогда в int числа будут разные.
------
....
randomize;
begin
int := 1 + random(listbox1.ItemIndex);
......
----------
P_KEV вне форума Ответить с цитированием
Старый 04.05.2009, 13:19   #3
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

всёравно не работает(вообще не переключает).
blackstersl вне форума Ответить с цитированием
Старый 04.05.2009, 13:30   #4
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Попробуй заменить
Код:
int := 1 + random(listbox1.ItemIndex);
на
Код:
int := 1 + random(listbox1.Items.count-1);
Ну и как говорилось randomize сначала поставь.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 04.05.2009, 13:57   #5
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

я вот так попробовал, но оно переключает только вниз и всё ближе к концу плейлиста:

Код:
begin
randomize;
listbox1.ItemIndex := listbox1.ItemIndex + i;
как сделать что б меняло числа не только вниз, а и вверх?
blackstersl вне форума Ответить с цитированием
Старый 04.05.2009, 14:11   #6
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Но ведь это будет уже не случайный выбор трека.
Если вверх подниматься, то
Код:
listbox1.ItemIndex := listbox1.items.count - i;
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 04.05.2009, 19:20   #7
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

ну а в windows media как работает random или randomize?
blackstersl вне форума Ответить с цитированием
Старый 04.05.2009, 19:24   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

randomize ничего не дает.
там random+защита от повторений
то есть там есть список и формируется чтото типа последовательности треков на основе Рандома
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.05.2009, 21:06   #9
5naip
Форумчанин
 
Аватар для 5naip
 
Регистрация: 05.10.2007
Сообщений: 536
По умолчанию

от перменной int в целях оптимизации можно избавиться
rocklistener...
5naip вне форума Ответить с цитированием
Старый 05.05.2009, 02:03   #10
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Нечто подобное уже обсуждалось здесь: http://programmersforum.ru/showthrea...657#post205657
Баламут вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод размерности масива с клавиатуры 111111 Общие вопросы C/C++ 3 29.12.2008 08:54
4 масива Slavik Microsoft Office Excel 2 03.12.2008 21:21
Удаление записи из динамического масива... Altera Общие вопросы Delphi 4 09.06.2008 09:15
Сортировка масива lhOsvald Общие вопросы C/C++ 21 02.05.2008 00:28
Ранжирование и умножение масива 11111 Паскаль, Turbo Pascal, PascalABC.NET 3 02.11.2007 22:01