这是一个显示等待状态的控件,当在线程中执行一个稍长时间的任务,需要显示一个等待过程,免得让用户不知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
作者是收费的,功能不断增加,价格也在上涨,但对于老用户免费升级,趁早出手,实惠多多!