再開啟第二個 form,name 改為 frmLogin,存成 loginform.pas.
此時點功能表的 Project → View Source,會看到程式碼如下:
- program Project1;
- uses
- Forms,
- mainform in 'mainform.pas' {frmMain},
- loginform in 'loginform.pas' {frmLogin};
- {$R *.res}
- begin
- Application.Initialize;
- Application.CreateForm(TfrmMain, frmMain);
- Application.CreateForm(TfrmLogin, frmLogin); // 直接刪除這一行, 意即程式啟動時, 不要自動產生 frmLogin
- Application.Run;
- end.
在 TfrmLogin 的 public 加入
class function Execute : boolean;
然後在 implementation 加入對應的程式碼, 還有輸入密碼後按下 button1 檢查密碼是否輸入正確的程式碼, loginform.pas 的程式碼如下:
- unit loginform;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
- type
- TfrmLogin = class(TForm)
- Edit1: TEdit;
- Label1: TLabel;
- Button1: TButton;
- procedure Button1Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- class function Execute : boolean; // 加入這一行
- end;
- var
- frmLogin: TfrmLogin;
- implementation
- {$R *.dfm}
- // 加入這一段
- class function TfrmLogin.Execute: boolean;
- begin
- with TfrmLogin.Create(nil) do
- try
- Result := ShowModal = mrOk;
- finally
- Free;
- end;
- end;
- procedure TfrmLogin.Button1Click(Sender: TObject);
- begin
- if Edit1.Text = 'admin' then
- ModalResult := mrOK
- else
- ModalResult := mrAbort;
- end;
- end.
再回頭修改 project 的 source 如下:
- program Project1;
- uses
- Forms,
- mainform in 'mainform.pas' {frmMain},
- loginform in 'loginform.pas' {frmLogin};
- {$R *.res}
- begin
- if TfrmLogin.Execute then
- begin
- Application.Initialize;
- Application.CreateForm(TfrmMain, frmMain);
- Application.Run;
- end
- else
- begin
- Application.MessageBox('密碼錯誤! 正確的密碼是 admin', '密碼錯誤');
- end;
- end.
沒有留言:
張貼留言