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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2010, 12:06   #1
Arinka
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 52
Сообщение Вывод ошибки при неправильном вводе пароля

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Form4.ModalResult=mrOk then //если пользователь нажал на кнопку Ok, то
if Edit1.Text='1' then //если набран необходимый пароль, то
begin
Form1.Show; //показать главное окно
Exit; //выйти из этой процедуры
end;
Application.Terminate; { если все вышеуказанные условия не выполняются, то остановить программу }
end;

procedure TForm4.BitBtn1Click(Sender: TObject);
begin
Close; //закрыть это окно
end;

procedure TForm4.BitBtn2Click(Sender: TObject);
begin
Form4.ModalResult:=mrOk; //результат работы этого окна
Close; //закрыть это окно
end;

end;

На форме имеется Edit и 2 кнопки BitBtn (ОК и Отмена). Мне нужно, чтобы пользователю при неправильном вводе пароля выводилось сообщение о неправильности пароля.
Подскажите пожалуйста код, и в какую строчку его вставить (в данном примере)???
Arinka вне форума Ответить с цитированием
Старый 12.06.2010, 13:05   #2
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Код:
...
if Edit1.Text='1' then //если набран необходимый пароль, то
begin
Form1.Show; //показать главное окно
Exit; //выйти из этой процедуры
End
Else
ShowMessage('Ошибка!');
End;
...
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 12.06.2010, 13:16   #3
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Взято где-то в сети (не помню где ):

Код:
Program Project1;

Uses Forms, Dialogs, Unit1 In 'Unit1.pas' {Form1};

{$R *.res}

Begin
If InputBox('Enter Password!','Enter Password!','')='parol' Then
      Begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
      End
Else
      MessageDlg('Wrong Password!', mtWarning, [mbOK], 0);
End.
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 12.06.2010, 13:41   #4
Arinka
Пользователь
 
Регистрация: 06.05.2010
Сообщений: 52
По умолчанию

Ввожу неправильный пароль, выходит сообщение. При закрытии этого сообщения окно полностью закрывается. А как сделать, чтобы оно оставалось?
Arinka вне форума Ответить с цитированием
Старый 12.06.2010, 13:45   #5
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Зачем?

Или вы хотите чтоб программа выпрашивала пароль до тех пор пока не отгадаешь?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 12.06.2010, 13:50   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Я согласен с DomiNick. Но если очень нужно, то уберите
Код:
Application.Terminate;
И посмотрите ещё
Код:
var Action: TCloseAction
Возможно, надо будет написать
Код:
Action:=CaNone;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 12.06.2010, 13:51   #7
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Вот кусок кода моей реализации:
Код:
procedure TPswLogFrm.BtnOkClick(Sender: TObject);
begin
  SetWindowPos( Handle, HWND_NOTOPMOST, Left, Top, Width, Height,
                                  SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE );
  if (Log<>edLogin.Text) or (Psw<>edPsw.Text) then
    begin
      MessageBox(0,'Неверный логин или пароль.','Ошибка ввода!',mb_Ok);
      edLogin.Text:='';
      edPsw.Text:='';
      edLogin.SetFocus;
      Inc(Count);
      if Count<3
        then
          begin
            StatusBar.Panels[0].Text:=' Осталось попыток - '+IntToStr(3-Count);
            Application.ProcessMessages;
            Exit
          end
        else Application.Terminate
    end;
  MainFrm.Visible:=true;
  PswLogFrm.Visible:=false;
end;
А вот скриншот
Screenshot - 12.06.jpg
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод ошибки при условии.... Arinka Помощь студентам 8 05.06.2010 14:54
Выдача ошибки при вводе 2 нулей в Edit1..Edit5 prikolist Общие вопросы C/C++ 5 11.04.2009 22:44
Вывод ошибки при вводе цифры 1..5 в поле Edit prikolist Общие вопросы C/C++ 2 16.03.2009 00:22
Проблемка при вводе чисел at10 Microsoft Office Excel 4 02.12.2007 22:22