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

本文介绍如何解决AlphaControls v14.04 Beta与DevExpress 18.1.1在RAD Studio 10 Seattle环境下编译时的兼容性问题。通过修改配置文件sDefs.inc和注释掉acLFPainter.pas中的{$DEFINEVER18}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参照网上找到的文章《让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位的对应文件都应做相同处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值