【问题标题】:Delphi focus controlling德尔福焦点控制
【发布时间】:2014-11-18 10:17:24
【问题描述】:

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

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

错误是不兼容的类型

【问题讨论】:

  • SetFocus 什么时候成为函数了?你不是想念then 吗?它仍然让我想知道人们如何发布 2 行有 2 个错误的代码(不要个人认为)。您能否edit your question 并发布您使用的确切代码,而不仅仅是“一些代码”,好吗?
  • 另外,习惯上你从不写if somebool = True then,你总是写if somebool then

标签: delphi


【解决方案1】:

你的代码应该是这样的:

label1.Visible := edit1.Focused;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多