Delphi 更改进度条颜色

Delphi 更改进度条颜色,delphi,lazarus,Delphi,Lazarus,我的表单中有一个进度条,我需要更改它的颜色。我需要它是黄色的,因此我使用以下代码: SendMessage(ProgressBar5.Handle, PBM_SETBARCOLOR, 0, clYellow); 我正在使用Lazarus,无法使用SendMessage;程序然后我在谷歌上搜索了一下,我发现我需要将lclintf库的使用包括在内 现在我有另一个麻烦,因为Lazarus无法识别参数PBM_SETBARCOLOR。事实上,它说: unit5.pas(245,50) Error: I

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

SendMessage(ProgressBar5.Handle, PBM_SETBARCOLOR, 0, clYellow); 
我正在使用Lazarus,无法使用SendMessage;程序然后我在谷歌上搜索了一下,我发现我需要将lclintf库的使用包括在内

现在我有另一个麻烦,因为Lazarus无法识别参数PBM_SETBARCOLOR。事实上,它说:

unit5.pas(245,50) Error: Identifier not found "PBM_SETBARCOLOR";
我发现我编写的第一行代码是将ProgressBar的颜色从绿色更改为所需颜色的唯一方法

有什么帮助吗?我使用的是Lazarus的最新版本。

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

您还可以将其声明为一个值为1033 WM_USER+9的常量。

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


您还可以将其声明为一个值为1033 WM_USER+9的常量。

这是因为该常量和功能特定于Windows。当你使用Lazarus时,你显然没有使用Windows。否则,如果它使用的是Windows API,那么如果启用了主题,它也不会工作。请看:另外,一个简单的谷歌搜索给了我这样的结果:@Jerry:因为你在使用Lazarus,你显然没有使用Windows为什么?@Jerrydoge:不,Lazarus不是基于Linux的语言。你可能应该做些调查。LCL是跨平台的,包括Windows。底层语言是FreePascal,它也是跨平台的,因此不是基于Linux的。然而,SendMessage和PBM_SETBARCOLOR是Windows特有的,因此不跨平台。@Jerrydoge:您可能在考虑Kylix?这是因为该常量和功能是Windows特有的。当你使用Lazarus时,你显然没有使用Windows。否则,如果它使用的是Windows API,那么如果启用了主题,它也不会工作。请看:另外,一个简单的谷歌搜索给了我这样的结果:@Jerry:因为你在使用Lazarus,你显然没有使用Windows为什么?@Jerrydoge:不,Lazarus不是基于Linux的语言。你可能应该做些调查。LCL是跨平台的,包括Windows。底层语言是FreePascal,它也是跨平台的,因此不是基于Linux的。然而,SendMessage和PBM_SETBARCOLOR是Windows特定的,因此不跨平台。@Jerrydoge:您可能在考虑Kylix?