![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проверка пароля [D6, Win95/98, WinME, NT4, Win2k, WinXP]
Kac © (2002-12-16 10:44:00)Люди как проверить пароль а потом уже либо разрешать работать проге основной либо нет? В файле ДПР...
Спасибо
Kac (2002-12-16 12:07:00) [1]Сори народ - задача в данном исполнении в принципе не решаема без огромной головной боли. Вот как надо (а как реализовать :(( )
Текст ДПР
1 создаем форму Логина
2 считываем в OnCreate некоторые параметры + параметр Автологон
3 передаем параметры в основную форму (они там нужны)
4 если Автологон то жмем програмно на ОК иначе выводим форму Логина и ждем когда юзверь нажмет
5 нажата ОК -пытаемся войти, нет тогда Аппликатион.Клозе
6 если не Зарегистрировались то идем на 4
ЗЫ форм логина НЕ ДОЛЖНА БЫТЬ ОСНОВНОЙ
Тема закрыта...
Всем в любом случае спасибо!
Skier (2002-12-16 11:46:00) [2]>Kac
> Модал Резулт нормально а фот МРОК он не знает...
> ккое значение имеет МрОК?
- uses Controls;
- mrOk = idOk = 1; :)
Kac (2002-12-16 11:34:00) [3]это понятно...
а еще вариант...
Модал Резулт нормально а фот МРОК он не знает...
ккое значение имеет МрОК?
Skier (2002-12-16 11:30:00) [4]>Kac
Как вариант :
Напиши в модуле к формой TPassword
функцию (и вынеси её в интерфейсную) по проверке пароля и остальных параметров
что-то типа :
function CanConnect(...) : Boolean;
implementation
function CanConnect(...) : Boolean;
begin
//создаёшь форму TPassword
//проверяешь пароль и другие параметы
//возвращаешь True если всё правильно
//убиваешь форму...
end;
В проекте (в ДПРе) пишешь
ConnectFlag := CanConnect(...);
Reindeer Moss Eater (2002-12-16 11:28:00) [5]Вот так и установить
ConnectFlag:=TRUE;
:)
Kac (2002-12-16 11:25:00) [6]ВОПРОС!
Как со всем этим мы взлетим :).
Как после всех проверок устанавить описаную в ДПРе переменную ConnectFlag:=TRUE; ???
Kac (2002-12-16 11:06:00) [7]Народ привожу тексты :)
Это в основном модуле в ОнКреате
.........
IM.UIN:=ReadInteger("Log","LastActive",0);
Settings.AutoLog:=false;
if IM.UIN<>0 then begin
Settings.AutoLog:=ReadBool("U"+inttostr(IM.UIN),"LogAuto",false);
IM.Password:=ReadString("U"+inttostr(IM.UIN),"Log","");
end;//if
end;
INI.Free;
// Application.CreateForm(TfLogin, fLogin);
if Settings.AutoLog then fLogin.bOk.Click else fLogin.ShowModal;
Caption:=inttostr(IM.Uin);
//
Kac (2002-12-16 11:02:00) [8]
with TfLogin.Create(nil) do
try
Application.Initialize;
ShowModal;
iF ModalResult<>mrOk then Abort; //не знает мрОК
Application.ShowMainForm:=false;
Application.Title := "
Skier (2002-12-16 10:53:00) [9]>Kac
И при вводе пароля обычно используют компонент
TEdit и его свойство TEdit.PasswordChar := "*"
(чтобы пароль не печатался на экране...)
Kac (2002-12-16 10:52:00) [10]Дело в том что там не только пароль но и еще куча всяких проверок - поэтому мне проще возвращять Модал резулт ...
Kac (2002-12-16 10:49:00) [11]Кажись это самое то!
МодалРезулт там проверить если можно!
Спасибо!
Reindeer Moss Eater (2002-12-16 10:49:00) [12]Введенные пароли (непосредственно сами, или некие функции от них) обычно сравниваются на равенство с чем-то. Используются при этом опреаторы "=" и "if then"
Song (2002-12-16 10:47:00) [13]Вот так например в dpr:
Begin
With TPasswordForm.Create(nil) Do
try
Application.Initialize;
ShowModal;
IF пароль_введён_неправильно then Abort;
Application.CreateForm(TForm1,Form1);
Application.Run;
finally
Free;
end;
End.
Что-то типа того..