HSPでは、マルチスレッドを関数として扱うことができないため、そのようなことを行うためには、
なんらかのファイルを読み込む際に、ファイルを分割して読み込みを行い、その分割の工程の
間々で、アニメーション表示を行う方法がとられます。
一応、WM_TIMERをつかった方法もあります。
#define WM_TIMER $00000113
#uselib "user32.dll"
#func SetTimer "SetTimer" int,int,int,int
#func KillTimer "KillTimer" int,int
#undef bload
#define bload(%1, %2, %3,%4) title ""+%1+"をロード中 ロードされるサイズ:"+%3+" オフセット:"+%4
screen 0,ginfo_dispx,20,4,0,ginfo_winx>>1
FileSize=12000 //ファイルサイズ
partition=50 //分割数
gaugeValue=double(ginfo_winx)/double(FileSize/partition) //ゲージの増加量
repeat double(FileSize)/double(partition)
bload "Dummy.txt",data, partition, cnt*partition //ファイルの分割読み込みのつもり
boxf 0,0,gaugeValue*cnt,ginfo_winy
wait 1
loop
title "ロード完了!"
color 255,255,255
sysfont 17
pos ginfo_winx-100>>1, ginfo_winy-21>>1 : mes "ロードが完了しました"
wait 200
cls
oncmd gosub *ON_WM_TIMER, WM_TIMER
SetTimer hwnd, 1,30
bload "Dummy.txt",data, FileSize, 0 //ファイル一括読み込みのつもり
repeat 1000 //読み込みに時間がかかっているつもり
wait 1
loop
KillTimer hwnd, 1
title "ロード完了!"
stop
*ON_WM_TIMER
color 255,255,255
boxf count-20,0,count,20
color
boxf count,0,count+20,20
if count>=ginfo_winx:count=0
count+10
return