使用 Delphi Tokyo 和 FireMonkey:我在一个表单上有很多不同的框架,我想设置一些表单级别的变量,因为表单的焦点在不同框架中的进出变化。前任。我在表单上有一个插入按钮,如果用户所在的框架允许插入,则希望启用它,然后在离开框架的焦点时再次禁用它。框架上有 OnEnter 和 OnExit 事件,但它们永远不会执行。显然,框架上有编辑等。
type
TForm1 = class(TForm)
Label1: TLabel;
procedure FormFocusChanged(Sender: TObject);
private
FFocusedFrame: TFrame;
public
{ Public declarations }
end;
Run Code Online (Sandbox Code Playgroud)
...
procedure TForm1.FormFocusChanged(Sender: TObject);
var
LParent: TFmxObject;
begin
if Focused <> nil then
begin
LParent := Focused.GetObject.Parent;
while (LParent <> nil) and not (LParent is TFrame) do
LParent := LParent.Parent;
if (LParent <> nil) and (FFocusedFrame <> LParent) then
begin
FFocusedFrame := TFrame(LParent);
Label1.Text := FFocusedFrame.Name;
end;
end;
end;
end.
Run Code Online (Sandbox Code Playgroud)
无需为每个控件连接 OnEnter 和 OnExit