Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit SignUp;
- interface
- uses
- Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
- System.Classes, Vcl.Graphics,
- Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls;
- type
- TfrmSignUp = class(TForm)
- edtUsername: TEdit;
- edtPassword: TEdit;
- edtReEnter: TEdit;
- signup: TButton;
- btnCancel: TButton;
- btnShowpwd: TButton;
- Label1: TLabel;
- Label2: TLabel;
- Label3: TLabel;
- PasswordConfirm: TLabel;
- UserType: TRadioGroup;
- procedure btnCancelClick(Sender: TObject);
- procedure signupClick(Sender: TObject);
- procedure edtReEnterChange(Sender: TObject);
- procedure edtPasswordChange(Sender: TObject);
- procedure btnShowpwdClick(Sender: TObject);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- frmSignUp: TfrmSignUp;
- implementation
- uses Login;
- type
- Tuser = record
- Username : string[20];
- Password : string[20];
- UserType : integer;
- end;
- var
- userfile: file of Tuser;
- user: Tuser;
- {$R *.dfm}
- procedure CheckPasswords;
- var I :integer;
- begin
- if frmsignup.edtPassword.Text = frmsignup.edtReEnter.Text then
- begin
- frmsignup.PasswordConfirm.font.Color := clGreen;
- frmsignup.PasswordConfirm.Caption := 'Passwords Match';
- end
- else
- begin
- frmsignup.PasswordConfirm.font.Color := clRed;
- frmsignup.PasswordConfirm.Caption := 'Passwords Do Not Match';
- end;
- end;
- function CheckFields : boolean;
- begin
- checkfields := false;
- if (frmsignup.edtusername.text <> '') and
- (frmsignup.edtPassword.Text <> '') and
- (frmsignup.edtReEnter.Text <> '') and
- (frmsignup.edtpassword.text = frmsignup.edtReEnter.text) and
- ((frmsignup.UserType.ItemIndex = 0) or
- (frmsignup.UserType.ItemIndex = 1)) = true then
- checkfields := true;
- end;
- procedure ClearFields;
- //resets all the fields when forms change
- begin
- frmsignup.edtpassword.Text := '';
- frmsignup.edtreenter.Text := '';
- frmsignup.edtusername.Text := '';
- end;
- Procedure ShowPasswords;
- begin
- if frmsignup.btnShowpwd.Caption = 'Show Password' then
- begin
- frmsignup.edtPassword.PasswordChar := #0;
- frmsignup.edtReEnter.PasswordChar := #0;
- frmsignup.btnShowpwd.Caption := 'Hide Password';
- end
- else
- begin
- frmsignup.edtPassword.PasswordChar := '*';
- frmsignup.edtReEnter.PasswordChar := '*';
- frmsignup.btnShowpwd.Caption := 'Show Password';
- end;
- end;
- procedure TfrmSignUp.btnCancelClick(Sender: TObject);
- begin
- edtPassword.Text := '';
- edtUsername.Text := '';
- UserType.ItemIndex := -1;
- end;
- procedure TfrmSignUp.SignUpClick(Sender: TObject);
- var
- UsernameTaken: Boolean;
- begin
- if checkfields then
- begin
- usernameTaken := false;
- assignfile(userfile, 'users.dat');
- reset(userfile); // use file check
- while not eof(userfile) do
- begin
- read(userfile,user);
- if user.Username = edtusername.Text then //check if taken username
- usernameTaken := true;
- end;
- if usernameTaken = false then
- begin
- user.UserType := UserType.ItemIndex;
- user.Username := edtusername.Text;
- user.Password := edtpassword.Text;
- write(userfile,user); //signup
- closefile(userfile);
- Messagedlg('Sign Up Complete',mtconfirmation,[mbOk],0);
- clearfields;
- frmlogin.Show;
- frmsignup.Hide;
- end;
- end
- else if not checkfields then
- begin
- messagedlg('You need to complete all fields before continuing',mtconfirmation,[mbok],0);
- end;
- if usernameTaken then
- begin
- showmessage('You cannot use this username as it is already taken');
- edtusername.Clear;
- end;
- end;
- procedure TfrmSignUp.btnShowpwdClick(Sender: TObject);
- begin
- ShowPasswords;
- end;
- procedure TfrmSignUp.edtPasswordChange(Sender: TObject);
- begin
- CheckPasswords;
- end;
- procedure TfrmSignUp.edtReEnterChange(Sender: TObject);
- begin
- CheckPasswords;
- end;
- procedure TfrmSignUp.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- frmlogin.Show;
- frmsignup.Hide;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement