【发布时间】:2014-05-28 07:16:20
【问题描述】:
我的 form1 是主窗体。我将它用于登录目的,在我不需要它之后 我把它藏起来。如果登录成功,点击按钮,调用form3。
procedure TForm1.AdvGlowButton1Click(Sender: TObject);
begin
ABSQuery4.Active:=false;
ABSQuery4.SQL.Clear;
ABSQuery4.SQL.Add('select .....bla,bla,bla....');
ABSQuery4.Open;
if ABSQuery4.FieldByName('passsword').AsString<>''
then begin
Form3.Show;
Form1.Hide;
end else begin
cxTextedit1.Text := '';
showmessage('wrong password');
end;
end;
现在我注意到有时该事件会产生奇怪的结果。 Form3 显示,但 Form1 仍然可见。用于显示主窗体 从我使用的form3:
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1.Show;
end
因为我需要 Form3 的应用程序图标,所以我有:
procedure TForm3.CreateParams(var Params: TCreateParams) ;
begin
inherited;
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
Params.WndParent := 0;
end;
你能告诉我是我搞砸了还是有更好的方法 使表格行为正常?
【问题讨论】:
-
旁白:制作一个无主和添加WS_EX_APPWINDOW的表单没有意义。做一个就够了。
-
所以我应该删除:Params.ExStyle := Params.ExStyle 或 WS_EX_APPWINDOW; ??
-
如果您按照我的回答中的建议,您将根本不需要它。
-
我将需要重写所有内容,但首先我将尝试仅使用 2 个表单来查看它是如何工作的。问题是我也需要从 mainForm 中调出这个 LoginForm……它是一个登录/注销系统。
-
没问题。您可以随时创建和显示表单。
标签: delphi delphi-xe4