Firemonkey TEdit在执行Application.run之前不闪烁

时间:2016-04-06 16:55:44

标签: delphi textbox firemonkey

我正在尝试使用基于此示例的登录表单创建应用程序:http://delphi.about.com/od/windowsshellapi/a/password_login.htm

上面的示例在VCL上运行正常

在Firemonkey中,如果我在调用Application.Run之前显示登录表单,则TEdit的光标不会闪烁。如果我显示登录表单并拨打Application.Run,它会正常闪烁。

在调用Application.Run之前,我可以做些什么来让光标闪烁吗?

2 个答案:

答案 0 :(得分:1)

我在过去遇到过这种情况,正如Roy所说,Application.Run在正确处理消息方面起着重要作用。

因此,您需要重新设计自己的应用。

使登录表单成为Application.CreateForm创建的表单,当您决定准备打开mainform时,只需将其分配给Application.MainForm。

请检查:http://www.uweraabe.de/Blog/2016/01/22/a-splash-form-in-firemonkey/

答案 1 :(得分:0)

我相信在FMX的Application.Run方法中还有一些剩余的初始化。您可以使用登录表单解决此问题,并创建主表单而不是自动创建的表单。例如,将您的登录表单添加为自动创建的表单。然后在您的登录表单中,如果他们通过了您的登录测试,您可以执行以下操作。

procedure TValidationDemoForm.InfoButtonClick(Sender: TObject);
var form: TForm;
begin
  Application.CreateForm(TMainDemoForm, form);
  Application.MainForm:= form;
  form.Show;
  Close;
end;