delphi 是否有一个函数在控件获得焦点时返回true?

wbrvyc0a  于 2023-04-11  发布在  其他
关注(0)|答案(1)|浏览(134)

我写了一个移动的应用程序。我有一个登录面板和编辑有一个标签,这是一个占位符。(电子邮件/密码)
编辑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 xe 6。
错误是不兼容的类型

jaql4c8m

jaql4c8m1#

你的代码应该是这样的:

label1.Visible := edit1.Focused;

你不能测试某个东西是否是“SetFocus”,因为SetFocus是一个实际上聚焦一些控件的过程,所以你需要测试控件是否是FOCUSED。

相关问题