离开标签页时执行代码

时间:2017-05-11 02:50:38

标签: delphi

我目前正在Delphi的一个项目中工作,该项目有两个部分:一个可以注册一些信息,另一个可以查看信息。 PageControl中有两个TabSheets,它们都执行不同的代码。当我留下一个标签转到另一个标签时,我需要执行closefile()命令,但是我不知道哪个事件寄存器会将标签页留给另一个。我试过onExit和onHide,但都没有工作。

procedure TfrmRegister.tbsListExit(Sender: TObject)
begin
if Painting <> nil then
    Painting.CloseFile;
end;

另一个TabSheet的onShow代码将会执行,但这不会发生。谢谢你的帮助

1 个答案:

答案 0 :(得分:4)

使用TPageControl.OnChanging事件。

  

在选择新标签之前发生

     

编写OnChanging事件处理程序,以便在所选标签更改之前立即执行特定操作。将AllowChange参数设置为False以防止更改。

     

使用OnChanging事件处理程序阻止用户在满足某些条件之前退出选项卡设置。 OnChanging事件处理程序还可用于在选项卡控件更改之前保存有关选项卡控件当前状态的信息。

     

注意:如果您在代码中更改活动页面,则不会调用该事件,例如,通过设置TPageControl.ActivePage的值。