德尔福集中控制

时间:2014-11-18 10:17:25

标签: delphi

我写了一个移动应用程序。 我有一个登录面板,编辑有一个标签,它是一个占位符。 (电子邮件/密码)

编辑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。

错误是不合适的类型

1 个答案:

答案 0 :(得分:1)

您的代码应该是:

label1.Visible := edit1.Focused;

你无法测试某些东西是否是" SetFocus"因为SetFocus是一个实际上对某些控件进行FOCUS的过程,所以你需要测试控件是否被FOCUSED。