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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2012, 13:41   #1
Brocop
Новичок
Джуниор
 
Регистрация: 20.06.2012
Сообщений: 2
По умолчанию Рандом

Всем привет.
Как сделать рандом переменных с выводом в поле Edit1.

Дедлаю так
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  s1: string;
  s2: string;
  s3: string
begin
s1:='123';
s2:='1234';
s3:='12345';

if ComboBox1.ItemIndex=0 then
begin
edit1.Text:=random(s1,s2,s3);
end;

end;
Ошибка.
Как решить?
Brocop вне форума Ответить с цитированием
Старый 20.06.2012, 14:32   #2
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,897
По умолчанию

Код:
s3: string;
Применение функции
Код:
i := Random(100)
Код:
edit1.Text:=IntToStr(random(StrToInt(s1)));

Последний раз редактировалось Shouldercannon; 20.06.2012 в 14:35.
Shouldercannon вне форума Ответить с цитированием
Старый 20.06.2012, 14:35   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Brocop, так использовать функцию нельзя. почитайте, что такой фукнция Random() и что она возвращает!

ну, для начала я бы предложил объединить строки в массив.
а потом уже выбирать случайное значение значение индекса.

вот так, например:
Код:
var
  ss : array[1..3] of string;
begin
 Randomize;  // иницилизацию ГСЧ лучше вынести на событие создания формы OnCreate
 ss[1]:='123';
 ss[2]:='1234';
 ss[3]:='12345';

if ComboBox1.ItemIndex=0 then
   edit1.Text:=ss [ random(3)+1 ];
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.06.2012, 14:36   #4
Brocop
Новичок
Джуниор
 
Регистрация: 20.06.2012
Сообщений: 2
По умолчанию

Shouldercannon Спасибо, но в переменных ни числа а строки. Делаю генератор ключей к программе.

Serge_Bliznykov Благодорю)

Как сделать диапазон значений в edit1.Text:=ss [ random(3)+1 ];
Чтобы не с 1 массива начинал к примеру с 7 кончая 15

Последний раз редактировалось Stilet; 21.06.2012 в 07:40.
Brocop вне форума Ответить с цитированием
Старый 20.06.2012, 15:40   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
edit1.Text:=ss[random(9)+7];
9=15-7+1
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 20.06.2012, 23:56   #6
TorrentTor
Форумчанин
 
Аватар для TorrentTor
 
Регистрация: 02.11.2011
Сообщений: 105
По умолчанию

Или воспользоваться функцией RandomRange

Код:
function RandomRange ( const RangeFrom, RangeTo : Integer ) : Integer;
Delphi функция RandomRange генерирует произвольное целое число ( integer ) в пределах диапазона RangeFrom и RangeTo.

Пример:

Код:
ShowMessage(IntToStr(RandomRange(7, 15)));
TorrentTor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рандом Mortimoro PHP 4 18.06.2012 22:34
РАНДОМ kilogram PHP 3 12.05.2012 14:24
рандом ZoomHz Общие вопросы C/C++ 1 10.07.2011 20:22
Рандом Ya_Aston Помощь студентам 4 17.12.2010 22:43
Рандом mansp Общие вопросы C/C++ 1 12.12.2010 15:18