Скачиваний:
8
Добавлен:
26.05.2018
Размер:
3.78 Кб
Скачать
unit Password;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, Vcl.Buttons,
Data.DB, Data.Win.ADODB;

type
TFPassword = class(TForm)
LPassword: TLabel;
MEPassword: TMaskEdit;
BBPassword: TBitBtn;
BBCancelPassword: TBitBtn;
BBChargePassword: TBitBtn;
MEPassword1: TMaskEdit;
MEPassword2: TMaskEdit;
LNew1: TLabel;
LNew2: TLabel;
BBNewPassword: TBitBtn;
procedure BBChargePasswordClick(Sender: TObject);
procedure BBNewPasswordClick(Sender: TObject);
procedure BBPasswordClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FPassword: TFPassword;

implementation

{$R *.dfm}

uses Main, Variable, Data;

procedure TFPassword.BBNewPasswordClick(Sender: TObject);
var
// переменная для хранения пароля
Password : String;
S : String;
begin
with FMain do
begin
with DM do
begin
with ADOQPassword do
begin
Active := False;
with SQL do
begin
Clear;
Add('SELECT * FROM Code');
end;
Active := True;
Password := FieldByName('Parol').AsString;
if MEPassword.Text = Password then
begin
if MEPassword1.Text = MEPassword2.Text then
begin
Active := False;
with SQL do
begin
Clear;
S := 'UPDATE Code SET Parol = '''+MEPassword1.Text+'''';
Add(S);
end;
ExecSQL;
ShowMessage('Пароль успешно изменён!');
MEPassword.Text := '';
end
else
ShowMessage('Новый пароль в двух полях не совпадает!');
end
else
ShowMessage('Не правильно введён старый пароль!');
end;
end;
end;
FPassword.Height := 120;
BBPassword.Visible := True;
BBNewPassword.Visible := False;
LPassword.Caption := 'Введите код доступа';
LNew1.Visible := False;
LNew2.Visible := False;
MEPassword1.Visible := False;
MEPassword2.Visible := False;
end;


procedure TFPassword.BBPasswordClick(Sender: TObject);
var
PasswordDB,
PasswordV,S : String;
I : Integer;
begin
PasswordV := MEPassword.Text;
{ For i:=1 to length(PasswordV) do
PasswordV[i]:=chr(ord(PasswordV[i]) XOR ord('9'));
S := PasswordV;}
with FMain do
begin
with DM do
begin
with ADOQPassword do
begin
Active := False;
with SQL do
begin
Clear;
Add('SELECT * FROM Code');
end;
Active := True;
PasswordDB := FieldByName('Parol').AsString;
For i:=1 to length(PasswordDB) do
PasswordDB[i]:=chr(ord(PasswordDB[i]));
S := PasswordDB;
if PasswordV <> PasswordDB then
begin
ShowMessage('Не правильно введён пароль!');
Exit;
end
else
Pass := True;
end;
end;
end;
end;

procedure TFPassword.FormActivate(Sender: TObject);
begin
// "сбросить" отображение пароля
MEPassword.Text := '';
// передать управление строке ввода пароля
MEPassword.SetFocus;
end;

procedure TFPassword.BBChargePasswordClick(Sender: TObject);
begin
FPassword.Height := 200;
BBPassword.Visible := False;
BBNewPassword.Visible := True;
LPassword.Caption := 'Введите старый пароль';
LNew1.Visible := True;
LNew2.Visible := True;
MEPassword1.Visible := True;
MEPassword2.Visible := True;
end;

end.
Соседние файлы в папке Курсовая ( Тест Томоса и узнавание фигур )
  • #
    26.05.201835.37 Кб7Main.dcu
  • #
    26.05.2018216.34 Кб7Main.dfm
  • #
    26.05.201832.48 Кб8Main.pas
  • #
    26.05.201810.22 Кб7Password.dcu
  • #
    26.05.20185.31 Кб7Password.dfm
  • #
    26.05.20183.78 Кб8Password.pas
  • #
    26.05.2018430 б7Tests.dpr
  • #
    26.05.201827.92 Кб7Tests.dproj
  • #
    26.05.20182.44 Кб7Tests.dproj.local
  • #
    26.05.2018503 б7Tests.identcache
  • #
    26.05.201888.55 Кб7Tests.res