1 (edited by pro100rom4ikanet 2018-04-25 17:56:02)

Topic: проблемма с авторизацией, помогите

Здравствуйте, комрады помогите зделал кнопку авторизации для входа в секретный раздел логин и пароль см. ниже

Main- тот самый секретный раздел(форма) в которую нужно попасть.
login- форма авторизации


что не получается, не могу после подтверждения пароля войти в этот раздел(секретный)
в скриптах новичок  не ругайте)




var
  sUserName: string;

procedure Main_OnShow (Sender: string; Action: string);
begin
     login.Button1.Default := True;
end;


procedure login_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     sUserName := '';

     // проверка пароля
     if ((login.Edit1.Text = 'user') and (login.Edit2.Text = 'paaa')) then

     begin

          sUserName := login.Edit1.Text; // запоминаем имя пользователя
          login.Close;// закрываем форму с запросом пароля

     end else   ShowMessage('Пароль не верный'); // если пароль неверный, выводим сообщение
end;

begin

end.

Post's attachments

Attachment icon r.zip 664.96 kb, 329 downloads since 2018-04-25 

БУДУ бЕйк@пеРоМ!!!!!

Re: проблемма с авторизацией, помогите

Приветствую.


Вы забыли вставить команду для показа формы Main.ShowModal;

procedure login_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     sUserName := '';

     // проверка пароля
     if ((login.Edit1.Text = 'user') and (login.Edit2.Text = 'paaa')) then
     begin
          sUserName := login.Edit1.Text; // запоминаем имя пользователя
          login.Close;// закрываем форму с запросом пароля
          Main.ShowModal;
     end else   ShowMessage('Пароль не верный'); // если пароль неверный, выводим сообщение
end;
Dmitry.

Re: проблемма с авторизацией, помогите

Спасибо большое)

БУДУ бЕйк@пеРоМ!!!!!

Re: проблемма с авторизацией, помогите

День добрый!
1.Если сделать login главной формой то форма Main после ввода верного пароля не открывается, при этом форма login закрывается.
2.Если сделать переход на форму login из другой формы то всё работает.
Подскажите почему первый вариант не работает?
Пётр

Re: проблемма с авторизацией, помогите

кстати, Дмитрий, чем отличается Form.Hide от Form.Close?

Re: проблемма с авторизацией, помогите

Petr wrote:

День добрый!
1.Если сделать login главной формой то форма Main после ввода верного пароля не открывается, при этом форма login закрывается.
2.Если сделать переход на форму login из другой формы то всё работает.
Подскажите почему первый вариант не работает?

Я тоже, кстати, заметил, что Form.ShowModal не со всеми формами корректно работает... Поэтому перешёл только на Form.Show, но, чувствую, что это как-то плохо влияет на пул памяти, отведенный на программу.

Re: проблемма с авторизацией, помогите

Petr wrote:

День добрый!
1.Если сделать login главной формой то форма Main после ввода верного пароля не открывается, при этом форма login закрывается.

Если форма Login является главной, тогда форму Login необходимо не закрывать, а скрывать, а форму Main необходимо вызвать самому.

procedure login_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
     sUserName := '';

     // проверка пароля
     if ((login.Edit1.Text = 'user') and (login.Edit2.Text = 'paaa')) then

     begin

          sUserName := login.Edit1.Text; // запоминаем имя пользователя
          login.Hide;// скрываем форму с запросом пароля
          Main.Show; // показываем форму

     end else   ShowMessage('Пароль не верный'); // если пароль неверный, выводим сообщение
end;

Также необходимо создать событие OnClose для формы Main, в нем необходимо закрыть форму Login, т.к. она является главной формой вашего приложения, иначе ваша программа останется висеть в памяти.

procedure Main_OnClose (Sender: TObject; Action: string);
begin
    Login.Close;
end;
Dmitry.

Re: проблемма с авторизацией, помогите

m.prokhachev wrote:

кстати, Дмитрий, чем отличается Form.Hide от Form.Close?

В принципе есть существенная разница только для главной формы проекта, если у главной формы вызвать метод Close, тогда ваша программа закроется, но если вызвать Hide, то программа продолжить работу, при этой главной формы проекта видно не будет.

Dmitry.

Re: проблемма с авторизацией, помогите

ок. всё понял. работает. спасибо!