這是一個顯示等待狀態的控件,當在線程中執行一個稍長時間的任務,需要顯示一個等待過程,免得讓用戶不知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
作者是收費的,功能不斷增加,價格也在上漲,但對於老用戶免費升級,趁早出手,實惠多多!