使用Firemonkey的SetFocus,来自StyleBook的动态创建的TEdit

时间:2013-07-18 11:54:13

标签: delphi firemonkey delphi-xe4

我有一个带有隐藏TEdit组件的自定义样式TListBoxItem。当我在列表框中选择一个项目时,我将TEdit设置为可见:

importFiles.Selected.StylesData['nameEdit.visible'] := TRUE;

但我有一个问题,我如何设置TEdit的焦点? 通常,我这样做:

Edit1.SetFocus();

任何想法,我如何将重点放在TEdit上?

1 个答案:

答案 0 :(得分:4)

您需要使用FindStyleResource从样式中访问TEdit:

procedure Form1.Button1Click(Sender: TObject);
var O: TFMXObject;
begin
  if Assigned(ImportFiles.Selected) then
  begin
    O := TFMXObject(ImportFiles.Selected).FindStyleResource('NameEdit');
    if O is TEdit then
    begin
      TEdit(O).Visible := True;
      TEdit(O).SetFocus;
    end;
  end;
end;