Так, с чего бы начать?
Начинать всегда сложно но все же когдато нужно.
В этом небольшом "тексте" я хочу рассказать Вам как с помощью Делфи вывести текст рандомом.Для тех кто не знает что такое рандом, обьясняю. Это слово в переводе с анг. означает - "случайный", "произвольный". Если не верите, можете сами перевести в любом переводчике:) НУ это я так, шучу, давайте ближе к теме. В делфи есть такая функция random(тут можно указать диапазон значений), например - random(255). Таким образом функция будет возвращать случайное число в диапазоне от 0 до 255.
Сегодня Мы напишем прогу, которая будет выводить не случайные цыфры, а целые наборы символов, тоесть и цыфры и буквы.
Запусти дядю Бормана, сразу сохрани проект в свою папку, чтобы потом мог легко его найти.
На форму кинь 3 TEdit, 3 TLabel, 2 TButton, и 3 TTimer. Таймеры возьми из закладки System, а остальной с закладки Standard.
Размести поудобнее компоненты - допустим, лейбл поставь над каждым эдитом, ну сам смотри как удобнее.
Щас займемся кодингом. Код будет маленький, потому как я сам большой писать пока не умею, поэтому сойдет для начала какой есть.
Как я уже говорил, размести поудобней компоненты.
На первуйю кнопку назови - Пуск, вторую - Стоп.
Да, самое главное забыл.
Переместись в редактор кода, там найди слово Var, ну вобщем такой текст:
выше него напиши:
const
mas: string = ('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890');
Это мы добавили константу типа string(строковую) с именем -"mas".
По собитии кнопик "Пуск" onClick напиши
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=true;
Timer2.Enabled:=true;
Timer3.Enabled:=true;
Button1.Enabled:=false;
Button2.Enabled:=true;
end;
Для кнопки "Стоп" этот код:
procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=false;
Timer2.Enabled:=false;
Timer3.Enabled:=false;
Button1.Enabled:=true;
Button2.Enabled:=false;
end;
Тоесть кнопки нам нужны для того, чтобы отключать таймеры.
Вот код для собития onTimer всех таймеров:
Для первого:
Label1.Caption:=(mas[random(36)]);
if Label1.Caption = Edit1.Text then
Timer1.Enabled:=false;
Для второго:
Label2.Caption:=(mas[random(36)]);
if Label2.Caption = Edit2.Text then
Timer2.Enabled:=false;
И для третьего:
Label3.Caption:=(mas[random(36)]);
if Label3.Caption = Edit3.Text then
Timer3.Enabled:=false;
Помоему все, ниче не забыли.
Щас наверно нужно обьяснить весь этот бессмысленный код...
Итак по порядку.
//Присваиваем первому лейблу случайный текст,
//текст может быть случайный символ, из обьявленной нами константы //mas
//Да, мы же договорились говорить сегодня о функции random();
Так вот, эта функция выбирает случайный символ из 36, потомучто у нас в нашей константе mas обьявлено в скобках 36 символов.
Если Вы захотите добавить еще и другие символы, типа - !"№, то просто добавьте их в любое место среди других, уже указанный мною сомволов, только тогда нужно будет указывать не mas[random(36)], а то количество которое вы указали сами, ну допустим было 36, а Вы добывили еще 10, значит будет 46, и тд.
Label1.Caption:=(mas[random(36)]);
// Если Кепшн лейбла(его текст, заголовок вобщем) = тексту //введенному в эдит1 то...
if Label1.Caption = Edit1.Text then
//выключаем Таймер1, таким образом прекращается перебор символов
Timer1.Enabled:=false;
ну и так далее по аналогии.
Конечно это не самый удачный алгоритм, но для начала хватит для понимания как рботают компоненты, и понять вобще как работает перебор символов.
Вот атким нехитрым способом осуществляется подбор паролей к разным прогрмам, ну там конечно все намного сложнее.
Я показал Вам только общий види этого.
Сами можете побробовать сделать строку, чтобы в нее выводились случайные символы из нашей константы, длиннну можете ввзять любюю, например.
Label1.Caption:=mas[random(36)]+mas[random(36)]
таким образом мы получим Лайбл из двух случайных символов.
Попробуйте проделать это сами, поэксперементирую с количеством выходный параметров.