C++动画光标

C++动画光标

问题描述:

我使用这个代码来调用动画光标C++ Builder中: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; 
    } 
} 

问题是,动画生效ATRE尝试-finally块,不retun做默认光标。

干杯, Nijazi Citaku

+0

您有问题的编辑文本中上述的一些格式按钮。不要害怕使用它们,使您的问题和代码更易于阅读:) – 2010-09-07 11:50:21

我强烈怀疑光标加载,但不会改变,直到Windows的消息循环仍在继续。

尝试一个ProcessMessages AFTER从文件加载光标。

光标不会消失,因为您没有告诉窗体返回到正常光标。你已经告诉屏幕返回到正常光标。

尝试:

__finally 
{ 
    Cursor = crDefault; 
} 

这里是部份的解决方案:

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

    const int cnCursorID1 = 1; 
    Screen->Cursors[cnCursorID1] = LoadCursorFromFile("cursors\\hourglas.ani"); 
    Application->ProcessMessages; 
    Screen->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; 
    } 
}