Т.е. при запуске приложения пользователь должен будет ввести пароль, чтобы получить доступ к главной форме иначе приложения закроется. Значит так, мы создаем обычную форму, в нашем примере можно даже пустую, роли это не играет. Затем поступаем следующим образом: File -> New -> Other -> вкладка Dialogs -> Password Dialog. Теперь нам надо, чтобы форма запроса пароля появлялась раньше, чем главная форма. Для этого для главной формы пишем обработчик OnShow: PasswordDlg.showmodal; Есть? Идем дальше. Пароль у нас будет храниться в виде константы и если введен неправильный пароль, то приложение завершится. Сделаем обработчик формы запроса пароля OnCloseQuery:
const pass = ‘наш пароль’; begin if Password.Text= pass then CanClose:= true else Application.Terminate; end; Вот и все, если Вы хотите, чтобы запрос пароля не обращал внимание на регистр, то нужно преобразовать все например в нижний регистр: If lowercase(Password.Text)= lowercase(pass) then CanClose:= true;
Теперь давайте сделаем так, чтобы наш пароль хранился в зашифрованном виде. Реализуем это с помощью самого простого способа XOR(а вообще в нете есть еще куча алгоритмов шифрования, да и инфы по криптографии, там Вы сможете посовершенствоваться). Для этого напишем свою функцию:
function TPasswordDlg.codexor(text: string): string; key, longkey: string; i : integer; toto : char; begin key:=’по Вашему вкусу’; for i:=0 to (length(text) div length(key)) do longkey:= longkey + key; for i:=1 to legth(text) do begin toto:= chr((ord(text[i]) xor ord(longkey[i]))); result:= result + toto; end; end;
Вот теперь наша функция будет возвращать зашифрованную строку переданную в параметре Text. Только не забываем объявлять нашу функцию в разделе Public: {Public declarations} Function codexor(text: string): string;
Осталось изменить обработчик события OnCloseQuery формы запроса пароля:
Var pass: string; begin pass:= codexor(‘по Вашему вкусу’); if codexor(Password.Text)= pass then CanClose:= true else Application.Terminate; end;
Ну вот на этом и все! Удачного кодинга и спасибо за внимание!
P.S. Теперь Вы можете хранить зашифрованный пароль например в каком-нибудь файле, а вообще запомните, что я просто показал принцип, а Вам мой совет: никогда не храните пароли, а храните их хэши.