Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Числа [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).


Наверх

Титульная страница Поиск, карта сайта Написать письмо