![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Числа [D7, XP]
Mozgan © (2006-09-03 10:51:00)Всем привет!
Подскажите пожалуйста, как можно в Edit1 засунуть сгенерированные числа? На форме есть кнопка и Edit. Как сделать, чтобы вся длина едита заполнилась случайными числами?
Я начал работу вот так, но что-то дальше не получается :(
var i,j,f: integer;
begin
randomize;
f:=0;
for i:=0 to 10 do
begin
j:= random(10)+1;
for f:=0 to length(edit1.Text)do
Edit1.Text:=IntToStr(j+length(Edit1.Text));
end;
DprYg (2006-09-03 11:53:00) [1]
> a:String='abcdefghijklmnopqrstuvwxyz';
Да, именно это я и имел ввиду в [15]
SerJaNT (2006-09-03 11:44:00) [2]Ну можно Char написать
Palladin (2006-09-03 11:44:00) [3]
Function RandomStr(n:Integer):String;
const
a:String='abcdefghijklmnopqrstuvwxyz';
var
i,k:Integer;
Begin
k:=Length(a);
SetLength(Result,n);
For i:=1 to n Do Result[i]:=a[Random(k)+1];
End;
SerJaNT (2006-09-03 11:43:00) [4]> ?
Что?
DprYg (2006-09-03 11:42:00) [5]
> var MyArray: array[0..9] of String;
?
DprYg (2006-09-03 11:41:00) [6]Вместо массива можно строку использовать
SerJaNT (2006-09-03 11:41:00) [7]примерно так:
var MyArray: array[0..9] of String;
...
randomize();
MyArray[0]:='А';
MyArray[1]:='Б';
...
MyArray[9]:='Р';
edit1.text := MyArray[random(9)];
DprYg (2006-09-03 11:39:00) [8]Создаешь массив. Заполняешь символами(можно вручную). Генерируешь
случайное число(но чтобы не вышло за границу массива). И берешь элемент массива с этим номером. Все.
Mozgan (2006-09-03 11:32:00) [9]можно либо через массив
Покажи пожалуйста пример. Тема очень интересная для меня!
SerJaNT (2006-09-03 11:28:00) [10]Можно и так Edit1.Text := Chr(random(255));
но тогда могут появится не только буквы, но и спец символы, а если только буквы, то можно либо через массив, либо определенные диапазоны ASCII кодов.
Mozgan (2006-09-03 11:24:00) [11]То есть так копать ты мне велишь, брат!
SerJaNT (2006-09-03 11:20:00) [12]Ой, блин, не Chr, тебе же надо букву! Сорри. Да, тогда можно сделать массив и тоже рандомом из него извлекать символы.
SerJaNT (2006-09-03 11:18:00) [13]Тут тебе поможет функция Chr(). Инфу смотри в справке.
Mozgan (2006-09-03 11:17:00) [14]Вот блин! Все так просто а башка не соображает...
Спасибо тебе за помощь?
И один последний вопрос относительно темы.
Предположим нужно отдельно буквы сгенерить.
Нужно как я понимаю указать множетсво этх букв?
SerJaNT (2006-09-03 11:15:00) [15]А еще проще контролировать кол-во символов еще до того как они появятся в edit1.
Например, так
randomize();
for i:=0 to 500 do begin
str := str + IntToStr(random(9));
if Length(str) > 10 then break;
end;
edit1.text := str;
примерно так.
DprYg (2006-09-03 11:14:00) [16]Edit1.Text := '';
Randomize;
for i := 1 to 10 do
Edit1.Text := Edit1.Text + IntToStr(Random(10)); ?
Mozgan (2006-09-03 11:09:00) [17]А.. понял о чем ты имеешь в виду. Извини.
Предположим, что 10 чисел (например: 5136978012).
Вот именно это мне и нужно сгенерировать. По сей момент копаю в коде - темнота. Не получается.
И ещё, может хранить во временную переменную типа string?
DprYg (2006-09-03 11:04:00) [18]
> Как сделать, чтобы вся длина едита заполнилась случайными
> числами?
> Ширина мне не нужна. Шрифт и стиль значения не имеют.
То есть получается, что тебе все равно сколько чисел в едите будет
написано?
Mozgan (2006-09-03 10:57:00) [19]Ширина мне не нужна. Шрифт и стиль значения не имеют. Мне просто для примера нужно :)
SerJaNT (2006-09-03 10:54:00) [20]Я думаю что надо сначала определить ширину одного символа, потом относительно ширины edit1 расщитать кол-во смиволов (edit1.width/SymbolWidth).