我正在使用以下代码在C ++构建器中调用动画光标:

void __fastcall TcfListatArtikujtLst::FormActivate(TObject *Sender)
{
   ActiveControl = cxGrid1;
   Application->ProcessMessages();

   const int cnCursorID1 = 1;
   Screen->Cursors[cnCursorID1] = LoadCursorFromFile("cursors\\hourglas.ani");
   Cursor = cnCursorID1;

   try
   {
       dmDM1->prcArtikujt->Close();
       dmDM1->prcArtikujt->Parameters->Refresh();
       dmDM1->prcArtikujt->Prepared;

       dmDM1->CDSArtikujt->Data = dmDM1->DSPArtikujt->Data;
       dmDM1->CDSArtikujt->Open();
   }
   __finally
   {
       Screen->Cursor = crDefault;
   }
}


问题是动画在尝试最终阻止时生效,并且不会重新调整默认光标。

干杯,
Nijazi Citaku

最佳答案

我强烈怀疑游标已加载,但直到Windows消息循环继续之前才更改。

从文件加载光标后,尝试使用ProcessMessages。

游标没有消失,因为您没有告诉表单返回普通游标。您已告诉屏幕返回到正常光标。

尝试:

__finally
{
   Cursor = crDefault;
}

10-07 17:11