Delphi焦点控制

Delphi焦点控制,delphi,Delphi,我写了一个移动应用程序。 我有一个登录面板和一个标签,这是一个占位符。(电子邮件/密码) 编辑onclick方法更改标签的可见项。我也有onkeyboardshow来改变登录面板的位置。所以当用户点击tedit时,键盘会显示出来,但标签的可视性不会改变。如果我再次单击tedit,标签的可见更改 所以我添加了一些代码来更改显示键盘时标签的可视性 procedure TformReg.FormVirtualKeyboardShown(Sender: TObject; KeyboardVi

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

编辑onclick方法更改标签的可见项。我也有onkeyboardshow来改变登录面板的位置。所以当用户点击tedit时,键盘会显示出来,但标签的可视性不会改变。如果我再次单击tedit,标签的可见更改

所以我添加了一些代码来更改显示键盘时标签的可视性

    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


错误为不可压缩类型

您的代码应该是:

label1.Visible := edit1.Focused;

您无法测试某个控件是否为“SetFocus”,因为SetFocus是一个实际聚焦某个控件的过程,所以您需要测试该控件是否聚焦。

因为什么时候是函数?那你是不是错过了
?这仍然让我想知道,人们怎么能发布两行有两个错误的代码(不要把它当成个人问题)。请你把你使用的确切代码写出来,而不仅仅是“一些代码”好吗?另外,习惯用法是,如果somebool=True那么你从不写
,如果somebool=True那么你总是写
,如果somebool那么你就写