我写了一个移动应用程序。 我有一个登录面板,编辑有一个标签,它是一个占位符。 (电子邮件/密码)
编辑onclick方法更改标签的可见性。我也有onkeyboardshow来改变登录面板的位置。因此,当用户单击tedit时,显示的键盘但标签的可见性不会改变。如果我再次点击tedit,标签的可见变化。
所以我添加了一些代码来改变labelshown时可见的标签。
procedure TformReg.FormVirtualKeyboardShown(Sender: TObject;
KeyboardVisible: Boolean; const Bounds: TRect);
begin
Rectangle1.Align:= TAlignLayout.Top;
Rectangle1.Margins.Left:= Trunc((screenW-362)/2);
Rectangle1.Margins.Right:= Trunc((screenW-362)/2);
if email.SetFocus = true then
lblEmail.Visible:= false
else
lblPassword.Visible:= false;
end;
但是这段代码不起作用,我必须了解哪些编辑是关注的。我正在使用delphi firemonkey xe6。
错误是不合适的类型
答案 0 :(得分:1)
您的代码应该是:
label1.Visible := edit1.Focused;
你无法测试某些东西是否是" SetFocus"因为SetFocus是一个实际上对某些控件进行FOCUS的过程,所以你需要测试控件是否被FOCUSED。