【问题标题】:Shifting the focus from one component to another in mobile using Delphi XE8使用 Delphi XE8 在移动设备中将焦点从一个组件转移到另一个组件
【发布时间】:2015-08-28 11:43:27
【问题描述】:

我正在使用 Delphi XE8 开发 Android 移动应用程序,请帮助我进行以下实现。

在一个表单中,我有 3 个组件,它们的顺序如下 1. TEdit (edtValue1), 2. TEdit (edtValue2), 3. TComboBox (cbxValue1)

当我打开表格时:

edtValue.SetFocus;

我的疑问是在 edtValue1 中输入了一些值后,如何通过在 Android 手机的 KeyPad 中按 Enter 键将焦点转移到 edtValue2。此外,如果我需要在 edtValue2 之后将焦点转移到 cbxValue1,那么我该如何处理呢?请帮助我。提前致谢。

【问题讨论】:

  • 您是否为组件设置了 TabOrder 属性?已经有bugs in earlier versions,但我希望这会在 XE8 中修复。

标签: delphi firemonkey delphi-xe7 delphi-xe8 firemonkey-style


【解决方案1】:

这是一个代码,适用于您提到的控件:

procedure TForm1.FormCreate(Sender: TObject);
begin
  edtValue1.SetFocus;
end;

procedure TForm1.edtValue1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
  Shift: TShiftState);
begin
  if Key = 13 then
    edtValue2.SetFocus;
end;

procedure TForm1.edtValue2KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
  Shift: TShiftState);
begin
  MouseDown(TMouseButton.mbLeft, [], cbxValue1.AbsoluteRect.CenterPoint.X, cbxValue1.AbsoluteRect.CenterPoint.Y);
end;

可能有点作弊,但它有很好的线索可供探索。

【讨论】:

    猜你喜欢
    • 2023-01-31
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多