Firemonkey TEdit 在执行前不闪烁 Application.run
Firemonkey TEdit is not blinking before execute Application.run
我正在尝试基于此示例创建带有登录表单的应用程序:http://delphi.about.com/od/windowsshellapi/a/password_login.htm
上面的例子在 VCL 上运行良好
在 Firemonkey 中,如果我在调用前显示登录表单 Application.Run
TEdit 的光标不会闪烁。如果我显示登录表单并调用 Application.Run
,它会正常闪烁。
我可以做些什么让光标在调用之前闪烁吗Application.Run
?
我相信 FMX 的 Application.Run 方法中还有一些剩余的初始化工作。您可以通过使用您的登录表单并让它创建您的主表单而不是您自动创建的表单来解决这个问题。例如,将您的登录表单添加为自动创建的表单。然后在您的登录表单中,如果他们通过了您的登录测试,您可以执行以下操作。
procedure TValidationDemoForm.InfoButtonClick(Sender: TObject);
var form: TForm;
begin
Application.CreateForm(TMainDemoForm, form);
Application.MainForm:= form;
form.Show;
Close;
end;
我过去遇到过这个问题,正如 Roy 所说,Application.Run 在正确处理消息方面起着重要作用。
所以,您需要重新设计您的应用程序。
将登录表单设置为由 Application.CreateForm 创建的表单,当您决定准备好打开主表单时,只需将其分配给 Application.MainForm。
检查这个:http://www.uweraabe.de/Blog/2016/01/22/a-splash-form-in-firemonkey/
我正在尝试基于此示例创建带有登录表单的应用程序:http://delphi.about.com/od/windowsshellapi/a/password_login.htm
上面的例子在 VCL 上运行良好
在 Firemonkey 中,如果我在调用前显示登录表单 Application.Run
TEdit 的光标不会闪烁。如果我显示登录表单并调用 Application.Run
,它会正常闪烁。
我可以做些什么让光标在调用之前闪烁吗Application.Run
?
我相信 FMX 的 Application.Run 方法中还有一些剩余的初始化工作。您可以通过使用您的登录表单并让它创建您的主表单而不是您自动创建的表单来解决这个问题。例如,将您的登录表单添加为自动创建的表单。然后在您的登录表单中,如果他们通过了您的登录测试,您可以执行以下操作。
procedure TValidationDemoForm.InfoButtonClick(Sender: TObject);
var form: TForm;
begin
Application.CreateForm(TMainDemoForm, form);
Application.MainForm:= form;
form.Show;
Close;
end;
我过去遇到过这个问题,正如 Roy 所说,Application.Run 在正确处理消息方面起着重要作用。
所以,您需要重新设计您的应用程序。
将登录表单设置为由 Application.CreateForm 创建的表单,当您决定准备好打开主表单时,只需将其分配给 Application.MainForm。
检查这个:http://www.uweraabe.de/Blog/2016/01/22/a-splash-form-in-firemonkey/