我有一个表单需要一些时间来创建,我想向用户展示正在发生的事情,并在调用显示表单的函数时使用沙漏光标。但我的问题是,我无法获得
Screen.Cursor := crDefault;
当表单实际显示在屏幕上时首先执行的操作。
我尝试了所有有点合理的事件,但没有成功。沙漏在表单可见之前就消失了。
下一步我可以尝试什么来使它工作。
如果需要更多信息,请告诉我,我会找到它。
我在调用创建表单的函数之前在主窗体中设置了沙漏,然后像下面一样显示我的表单。
procedure TfrmJsCv.FormShow(Sender: TObject);
begin
fReportFile := Folders.DirDatabase + 'jobsearch_print.mdb';
btnPrint.Visible := FileExists(fReportFile);
try
SetupMain;
SetupCertificates;
SetupContacts;
SetupCourse;
SetupJobs;
SetupLanguage;
SetupLanguageLevels;
SetupItKnowledge;
SetupKnowledgeLevels;
SetupKnowledgeTypes;
SetupOther;
SetupReferences;
SetupSchool;
SetupYears;
except
on E: exception do
Logfile.Error('F_JsCv.FormShow: ' + E.Message);
end;
PagCurriculumVitae.ActivePageIndex := 0;
end;
我尝试在OnActivate、OnCreate、OnShow、OnResize和OnPaint事件中放置Screen.Cursor := crDefault;,但是沙漏光标会在窗体准备好/在屏幕上可见之前被重置
所有Setupxxxxx过程都是为窗体准备数据的过程,这些数据相当复杂 - 它从12个不同的表中收集数据。