ChinaCock界面控件介绍-CCLoadingIndicator

这是一个显示等待状态的控件,当在线程中执行一个稍长时间的任务,需要显示一个等待过程,免得让用户不知app在做什么?避免用户寂寞。

先看看这个控件的属性说明:

BackgroundTransparency:指这个控件显示时,背景是否透明,默认False,当设置为False时,等待界面会锁定背后的控件,不允许用户操作。很多时间,我们需要设置他为False,防止app在执行查询时,用户还会有其他的操作。

Fill:显示控件的填充颜色

Height:高度

LoadingBitmap:显示的图片,默认情况下,不设置此图片,显示控件会显示默认的,效率已经非常好了。但我们可以显示自己的图片,比如app的Logo,我试着用100*100透明Png图片,效率也非常棒。

LoadingBitmapOpaqueColor:显示图片的颜色,为了app的整体风格统一,你可以按app的主体色来设置,设置后,图片会按这个颜色来显示

LoadingText:显示等待状态时的文字,比如:正在查询数据...

Stroke:等待控件的边框设置,可以设置颜色等

TextSettings:LoadingText的字体设置

现在,看看具体的应用案例:

由于这是一个不可视控件,在IDE中拖放一个到MainForm上,然后设置其属性,定制其外观。然后呢,我们可以做两个全局方法,一个是显示等待状态,一个是隐藏等待界面。

procedure ShowProgressDialog(msg:string);
begin
  mainform.CCLoadingIndicator1.LoadingText:=msg;
  mainform.CCLoadingIndicator1.ShowLoadingIndicator;
end;

procedure HideProgressDialog;
begin
  MainForm.CCLoadingIndicator1.HideLoadingIndicator;
end;

调用过程:

procedure TCLInfo.PrintPhoto(ID: string);
begin

  ShowProgressDialog('正在生成打印内容...');
  Scheduler.Run(
                procedure
                begin
                   ...//执行长时间查询 
                end)
           .SynchronizedAfterRun(
                                  procedure
                                  begin
                                    HideProgressDialog;
                                    if r = 'ok' then
                                    begin
                                      PrintPDF(fn)
                                    end
                                    else
                                      fmx.Dialogs.ShowMessage('无法打印:' + r);
                                  end)
           .Activate;
end;

上段代码使用了kbmMW的Scheduer对象,在线程中执行查询任务,从服务端返回生成的PDF文件,完成后,在主线程中打印这个文件。

这是默认图片显示的效果:

 

这是使用图片显示的效果:

如果你对ChinaCock感兴趣,可以加入QQ群:223717588。作者的QQ:591361557

作者是收费的,功能不断增加,价格也在上涨,但对于老用户免费升级,趁早出手,实惠多多!

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