uniGUI为TreeGrid定制Mask

function beforedeselect(sender, record, index, eOpts)
{
    if(record.data.leaf){sender.uform.mask("正在检索数据中...");};
}

当点击TreeGrid时,我要做一个长时间的查询,这时候需要显示Mask,避免用户重复操作界面。象上面这样,用js代码显示mask。

当执行完查询时,隐藏Mask。

procedure TUserYzcFrame.UniTimer1Timer(Sender: TObject);
begin
  UniTimer1.Enabled := False; // 先关定时器
  Open;//执行长时间的查询
  //隐藏mask。
  UniSession.AddJS(MainForm.WebForm.JSForm.JSName+'.unmask(); ');
end;

感谢朋友风轻云淡告诉这个方法!

实际上,uniButton,uniEdit等控件都有一个ScreenMask属性,通过这个属性,就可以实现上面的效果:

ScreenMask.Enabled:=True;

当点击一个按钮,执行长时间的查询的时候,就会在开始查询前显示Mask,执行完成后,隐藏Mask,不用写一行代码。可惜TreeGrid则没有这个属性,希望官方能加入这个属性就好了。

原文地址:https://www.cnblogs.com/kinglandsoft/p/15679356.html