设置AlphaControls支持DevExpress皮肤之后编译出错:E2003 Undeclared identifier: 'TcxExpandButtonState'

参照网上找到的文章《让AlphaControls改变DevExpress皮肤》,分别修改相应的两个配置文件 sDefs.inc

(我的64位和32位对应文件分别在如下两个位置——

  F:\PlugIns\DelphiXE\AlphaControls\DX10_x64
  F:\PlugIns\DelphiXE\AlphaControls\DX10 )

温馨提示:上文作于2012年,当时配置文件的注释方式为小圆点,现在已经换成双斜杠了。

也即是说,在配置 文件中将以下一行代码前边的双斜杠“//”删除即可——

//{$DEFINE DEVEX} // DevExpress, LookAndFeel.NativeStyle property must be False

注:两控件的版本信息分别为——

  AlphaControls v14.04 Beta released
  DevExpress Copyright (C) 1998-2018 Developer Express Inc.


问题来了。设置好后重新进入IDE(RAD Studio 10 Seattle 版的 Delphi XE10),打开同时使用了俩控件的项目编译,结果出现错误——

  [dcc64 Error] acLFPainter.pas(142): E2003 Undeclared identifier: 'TcxExpandButtonState'
  [dcc64 Error] acLFPainter.pas(142): E2003 Undeclared identifier: 'cebsNormal'

度娘找不到解决方案,后通过Google却在AlphaControls的官网找到了答案——

Cannot install v 13.17 with DevExpress 18.1.1 - Forums  
   http://www.alphaskins.com/forum/index.php?showtopic=10004

解决方法倒是简单——

   Try to open the acLFPainter.pas file and comment the "{$DEFINE VER18}" line.

即:试着打开源文件 acLFPainter.pas,注释掉"{$DEFINE VER18}" 那行即可——

unit acLFPainter;
{$I cxVer.inc} {$undef DELPHI5}
{$I sDefs.inc}

// WARNING! This unit is compatible with Devexpress version 2011 and newer
// for older versions used the acLFPainter6.pas unit

//{$DEFINE VER18} // cxGrid version 18 and newer   // 注释掉该行
{$DEFINE VER17_1_4}
{$DEFINE VER16_2_2}
{$DEFINE VER16_1_4}
{$DEFINE VER14_1_2}
{$DEFINE VER13_2_2}
{$DEFINE VER12_2_3}
{$DEFINE VER12_1_6}
{$DEFINE VER26}
{$DEFINE VER23}

当然32位和64位的对应文件都应做相同处理。

你可能感兴趣的:(Delphi技术)