2014-09-04 261 views
1

我的表单中有一个进度条,我需要更改它的颜色。我需要它是黄色,因此我使用此代码:更改进度条颜色

SendMessage(ProgressBar5.Handle, PBM_SETBARCOLOR, 0, clYellow); 

我使用的拉撒路,我无法用SendMessage();程序。然后我搜索了一下,发现我需要在使用库中包含lclintf库。

现在我有另一个麻烦,因为拉撒路无法识别参数PBM_SETBARCOLOR。事实上,它指出:

unit5.pas(245,50) Error: Identifier not found "PBM_SETBARCOLOR"; 

我看到我写的第一行代码是从绿色变为一个进度条的颜色为一个我需要的唯一途径。

任何帮助?我正在使用最新版本的拉撒路。

+0

这是因为该常量(因此功能)是特定于Windows。当你使用Lazarus时,你显然不使用Windows。否则,如果它使用的是Windows API,那么如果启用了主题,则它也不起作用。请参阅:http://msdn.microsoft.com/en-us/library/windows/desktop/bb760838(v=vs.85).aspx – 2014-09-04 23:19:49

+0

此外,一个简单的Google搜索给了我这样的结果:http:/ /forum.lazarus.freepascal.org/index.php?topic=9545.0 – 2014-09-04 23:22:28

+2

@Jerry:“当你使用Lazarus时,你显然不使用Windows”为什么? – 2014-09-04 23:25:17

回答

8

PBM_SETBARCOLOR在freepascal的commctrl.pp单元中声明,与Delphi中相同。

您也可以将其声明为值为1033(WM_USER + 9)的常量。