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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2017, 01:04   #1
Дудуцц
Новичок
Джуниор
 
Регистрация: 25.04.2017
Сообщений: 2
По умолчанию Подскажите что и как дописать для того, что бы количество паролей (edit2), так же как и количество символом в пароле (edit1) можно было менять.

Код:
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    GroupBox1: TGroupBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    Label1: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);

  private
    { Private declarations }
  public
    { Public declarations }
  end;


 const
 s1='QWERTYUIOPASDFGHJKLZXCVBNM';
 s2='qwertyuiopasdfghjklzxcvbnm';
 s3='0123456789';
 s4='!@#$%^&*(){}[]|\/"-+=№;:?*';

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var s0, password:string;
  i, c: integer;
begin

if CheckBox1.Checked then s0:=s0+s1;
if CheckBox2.Checked then s0:=s0+s2;
if CheckBox3.Checked then s0:=s0+s3;
if CheckBox4.Checked then s0:=s0+s4;
password:='';
c:=StrToInt(Edit1.Text);
for i:= 1 to c do password:=password+s0 [Random(Length(s0))+1];
Memo1.Lines.Clear;
Memo1.Lines.Add(password);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
 Randomize;
end;


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not (Key in ['0'..'9']) then Key:=#0;
end;

end.
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 25.04.2017 в 09:52.
Дудуцц вне форума Ответить с цитированием
Старый 25.04.2017, 09:56   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

если я Вас правильно понял, то так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var s0, password:string;
  i, c, j, n: integer;
begin
   s0 := '';
   if CheckBox1.Checked then s0:=s0+s1;
   if CheckBox2.Checked then s0:=s0+s2;
   if CheckBox3.Checked then s0:=s0+s3;
   if CheckBox4.Checked then s0:=s0+s4;
   c:=StrToInt(Edit1.Text);
   Memo1.Lines.Clear;
   n := StrToInt(Edit2.Text);
   for j:=1 to n do begin
      password:='';
      for i:= 1 to c do password:=password+s0 [Random(Length(s0))+1];
      Memo1.Lines.Add(password);
   end;
end;

Последний раз редактировалось Serge_Bliznykov; 25.04.2017 в 10:27.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.04.2017, 10:16   #3
Дудуцц
Новичок
Джуниор
 
Регистрация: 25.04.2017
Сообщений: 2
По умолчанию

Благодарю
Дудуцц вне форума Ответить с цитированием
Старый 25.04.2017, 10:29   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Дудуцц Посмотреть сообщение
Благодарю
пожалуйста.

я там чуть-чуть подправил код, проглядел ваш косяк.
Переменные перед использованием ВСЕГДА нужно иницилизировать!
поэтому в начале процедуры сделайте присвоение s0 пустой строки.
Код:
begin
   s0 := '';
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите, как сделать так, чтобы можно было нажать клавишу Bescape. Militia Общие вопросы Delphi 6 16.05.2016 10:16
редактируемое окно что бы можно было менять текст Николай_Kolumb Помощь студентам 5 25.04.2012 18:00
Как сделать, так что бы программа заканчивалась символом Sylar9 Общие вопросы C/C++ 2 22.03.2012 14:34
Как с помощью JavaScript изменить цвет фона ячеек в таблице,так что бы можно было выбрать цвет из списка Gotessa JavaScript, Ajax 1 09.05.2009 16:05
Подскажите, как сделать так, чтобы тест можно было повторно пройти не перезагружая пр Kamikadze_666 Помощь студентам 2 23.05.2007 02:48