View Full Version : پنجره درخواست رمز ورود به برنامه
  
MOJTABAATEFEH
جمعه 18 دی 1388, 01:07 صبح
من برخي از برنامه هام رمز ورود مي خوان و فرم اصلي برنامه را فرم دريافت رمز ورود قرار مي دم پس با بستن اون پنجره برنامه Terminate ميشه پس نميشه اون رو بست و كار را ادامه داد وقتي كاربر رمز رو درست وارد كرد پنجره رمز را Hide و فرم بعدي رو نمايش مي دم آيا اينكار درست هست؟ يا اينكه بايد يك بلاي ديگه سر پنجره دريافت رمز بيارم به غير از Hide كردن؟
با تشكر
vcldeveloper
جمعه 18 دی 1388, 01:51 صبح
لزومی نداره فرم دریافت رمز را فرم اصلی قرار بدید.
1- فرم که بصورت دایالوگ باکس نمایش داده بشه، طراحی کنید، مثلا:
interface
type
  TLoginForm = class(TForm)
      edtUserName : TEdit;
        edtPassword : TEdit;
        btnOK : TButton;
        btnCancel : TButton;
      procedure btnOKClick(Sender: TObject);
    protected
      function ValidatePassword: Boolean; virtual;
    public
      class function Execute: Boolean;
    end;
    
implementation
class function TLoginForm.Execute: Boolean;
begin
  with TLoginForm.Create(nil)
    try
      Result := ShowModal = mrOK;
    finally
      Free;
    end;
end;    
procedure TLoginForm.btnOKClick(Sender: TObject);
begin
  if ValidatePassword then
      Self.ModalResult := mrOK
    else
    begin
    ShowMessage('Invalid password!');
        Self.ModalResult := mrNone;
    end;
end;
function TLoginForm.ValidatePassword: Boolean;
begin
  Result := edtPassword.Text = '123';
end;
2- به صورت زیر در فایل DPR پروژه آن را استفاده کنید:
if TLoginForm.Execute then
begin
  Application.CreateForm(TMainForm, MainForm);
    Application.Run;
end;
benyaminrahimi
جمعه 18 دی 1388, 02:23 صبح
لزومی نداره فرم دریافت رمز را فرم اصلی قرار بدید.
1- فرم که بصورت دایالوگ باکس نمایش داده بشه، طراحی کنید، مثلا:
interface
type
  TLoginForm = class(TForm)
      edtUserName : TEdit;
        edtPassword : TEdit;
        btnOK : TButton;
        btnCancel : TButton;
      procedure btnOKClick(Sender: TObject);
    protected
      function ValidatePassword: Boolean; virtual;
    public
      class function Execute: Boolean;
    end;
    
implementation
class function TLoginForm.Execute: Boolean;
begin
  with TLoginForm.Create(nil)
    try
      Result := ShowModal = mrOK;
    finally
      Free;
    end;
end;    
procedure TLoginForm.btnOKClick(Sender: TObject);
begin
  if ValidatePassword then
      Self.ModalResult := mrOK
    else
    begin
    ShowMessage('Invalid password!');
        Self.ModalResult := mrNone;
    end;
end;
function TLoginForm.ValidatePassword: Boolean;
begin
  Result := edtPassword.Text = '123';
end;
2- به صورت زیر در فایل DPR پروژه آن را استفاده کنید:
if TLoginForm.Execute then
begin
  Application.CreateForm(TMainForm, MainForm);
    Application.Run;
end;
کد نويسي زيبايي بود من که لذت بردم:تشویق:
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.