我正在尝试使用基于此示例的登录表单创建应用程序:http://delphi.about.com/od/windowsshellapi/a/password_login.htm
上面的示例在VCL上运行正常
在Firemonkey中,如果我在调用Application.Run
之前显示登录表单,则TEdit的光标不会闪烁。如果我显示登录表单并拨打Application.Run
,它会正常闪烁。
在调用Application.Run
之前,我可以做些什么来让光标闪烁吗?
答案 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;