【问题标题】:Animated Cursor Playing动画光标播放
【发布时间】:2011-12-19 19:58:04
【问题描述】:

我有一个包含一个“TAnimate1”的表单“TForm1”。我有一个 AVI 资源作为文件名“Animate 01.avi”,资源标识符为“AVI”,一个“动画光标”作为文件名“光标 01.ani”,资源标识符为“8”。我希望播放“Animate 01。 avi”在“FormCreate”事件上,并将默认光标设置为“8”。我正在使用“Delphi XE2”。

请从“http://hotfile.com/dl/137675080/34f701f/KoushikHalder01.7z.html”下载我的项目文件并告诉我在哪里纠正。

【问题讨论】:

  • 最好在问题中包含相关代码部分。此外,您已经给出了文件名和资源 ID,您是从文件还是资源加载?另外,您没有混合资源“标识符”和“类型”,对吗?动画控件从 AVI 资源加载 avi,你的有一个 AVI 标识符(也许还有类型?)。
  • 据我所知,除了一些小错误,我什么都做了。请下载并检查并告诉我在哪里纠正。请。

标签: delphi delphi-xe2


【解决方案1】:

好的,下载了……

首先,您将 avi 放入“RCDATA”部分。正如我已经说过的,那是行不通的。动画控件加载 AVI 类型的 avi 文件。所以这一行

AVI RCDATA "KoushikHalder.avi"

在您的“.rc”文件中,实际上应该是:

AVI AVI "KoushikHalder.avi"

ID可以随便放,但是资源类型应该是AVI


其次,您将通过 资源标识符 加载 avi。您已经为它提供了一个“AVI”标识符。所以你的代码中的这一行:

Animate01.ResName :='KoushikHalder.avi';

实际上应该是:

Animate01.ResName :='AVI';


第三,您的“.ani”文件不符合标准。有关详细信息,请参阅this question。除非您更正它,否则您将无法加载该 ani 文件。


第四,您没有正确加载 ani 文件。它的标识符不是'8',而是8。所以下面一行:

Screen.Cursors[8] := LoadCursor(HInstance, '8');

应该是

Screen.Cursors[8] := LoadCursor(HInstance, MakeIntResource(8));

(或指针(8)..)。


最后,您必须将光标设置到您的 ani 文件的某个位置,以便您可以看到它。例如:

Screen.Cursor := 8;

BitBtn01.Cursor := 8;



我希望这会有所帮助...

【讨论】:

  • 非常感谢。现在 avi 资源正在播放,但 ANI 光标的问题仍然存在。我已经按照你的评论做了一切。但是你告诉我“'ani'文件不符合标准”,请告诉我那些标准。我不想从任何文件中播放 ANI 光标。我只需要从资源播放。
  • @Koushik - 阅读链接问题的已接受答案。它解释了为什么 'ani' 文件是 bad 并给出了两种不同的方法来使 'ani' 表现良好。在你有一个好的 'ani' 之后,将它包含在你的资源文件中并构建你的应用程序。
猜你喜欢
  • 2018-04-10
  • 2019-10-27
  • 1970-01-01
  • 2011-07-08
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2020-10-24
  • 2010-12-22
相关资源
最近更新 更多