Raf*_*ari 0 delphi login tform
在我的应用程序中,我有两种形式,比如LoginForm和AccountForm
LoginForm被设置为主窗体,它是用户能够从他的帐户登录时的表格(两个TEdits和登录按钮).当用户键入其登录详细信息并进行连接时,将打开一个新表单AccountForm.
如何在不关闭整个应用程序的情况下关闭登录成功的LoginForm?或者用这种语言如何使用下面的代码来关闭登录表单但不关闭应用程序.
if (not IncludeForm.sqlquery1.IsEmpty) and (isblacklisted='0') and (isactivated='1') then
begin // Login Successful *** Show the account window
AccountForm.Show;
LoginFrom.Close; // <----The problem is in this line, using this line causes the whole application to close***}
end;
Run Code Online (Sandbox Code Playgroud)
谢谢
Gol*_*rol 10
不要将LoginForm作为主窗体.如果使用LoginForm := TLoginForm.Create而不是使用创建loginform
Application.CreateForm,则表单将不会设置为应用程序主窗体.使用Application.CreateForm创建的第一个表单将是主窗体.您可以编辑项目文件(.dpr)以将其更改为:
program YourApp;
uses
Forms,
fLoginForm in 'fLoginForm.pas' {LoginForm},
fMainForm in 'fMainForm.pas' {MainForm};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
with TLoginForm.Create(nil) do
try
ShowModal;
finally
Free;
end;
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)
您还可以创建自己的应用程序主循环来检查正在打开的特定表单,但这比上面的解决方案更难,更脆弱.
你可以取这里的优秀文章的源代码显示登录/密码对话框主窗体创建之前由扎克Gajic .
摘抄:
program PasswordApp;
uses
Forms,
main in 'main.pas' {MainForm},
login in 'login.pas' {LoginForm};
{$R *.res}
begin
if TLoginForm.Execute then
begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm) ;
Application.Run;
end
else
begin
Application.MessageBox('You are not authorized to use the application. The password is "delphi".', 'Password Protected Delphi application') ;
end;
end.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1292 次 |
| 最近记录: |