设置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程序的自动升级功能的实现(AutoUpdate使用指南) 在UtiMnid组件下,利用auAutoUpgrader实现自动升级(已经测试通过) 第一步:下载AutoUpgrader.Pro.v4.6.4。 第二步:打开AutoUpgrader.Pro.v4.6.4下面的Delphi7目录,双击AutoUpgraderProD7.package文件安装,点install,安装。完成后,在工具面板上增加了一个UtiMnid组件。然后将Delphi7目录下面的全部文件都复制到delphi7的安装目录下面的bin目录中。 第一次发布程序时要做的事。 1、在已开发完成的程序中,在第一个启动的窗体上,放一个TauAutoUpgrader控件。 2.双击auAutoUpgrader1,在弹出的对话框中做以下设置: (1)选择ByNumer,按版本号检查更新,在Numer文本框中填好程序版本号。注意,程序版本号的格式一定要是如:1.0.0.1这种格式,否则会出错。 (2)单击add按钮,添加本次升级文件的http下载地址,格式如:http://192.168.1.104:8080/update/project1.exe,千万别写错了。AutoUpgrader只支持http方式。不要填错。Upgrade method默认;可以在“Release Notes Message”里面写上本次的更新内容; (3)单击“Export to info-file”按钮,输入文件名,生成一个后缀为.inf的配置文件,然后将这个配置文件上传到你的网站,和升级文件放在同一个目录,如http://192.168.1.104:8080/update。 (4)在auAutoUpgrader1控件的InfoFileURL属性里,输入你的网站里的那个inf文件,假如文件名为aa.inf,那么属性里的值就应该是http://192.168.1.104:8080/update/aa.inf,这儿也千万别搞错了。因为程序升级是靠这个文件来断定是否升级。 (5)把auAutoUpgrader1的autocheck设为true。 (6)自动检查并提示升级:方法是:在第一个启动窗体上,添加以下代码: procedure TForm1.FormCreate(Sender: TObject); begin auAutoUpgrader1.CheckUpdate(true);//实际上就只加这一句。 end; (7)手动升级:方法是,窗体上放一个按钮button,属性为“检查更新”,在按钮的onclick事件里面写上auAutoUpgrader1.CheckUpdate(False); (8):在网站上建目录和端口设置。 必须和程序开发中设置的目录一致,否则升级时找不到文件。如开发中的目录是http://192.168.1.104:8080/update,那么网站上就必须设置update目录。还有一点,网站的端口也必须是8080。 (9):将升级文件和配置文件放在网站上已设置好的目录中,例如:update目录。如果文件很多,分不清哪些是升级的,哪些不是的,就全部放进去吧。呵呵。。反正现在硬盘够大了。如果你能分清楚就更好。 修改客户端后,怎么升级处理? 如果你的客户端因业务需要而需要进行修改,那么应在修改完成后,进行下面的修改和处理,才能实现自动升级。 1、对auAutoUpgrader1的修改。双击打开,修改ByNumer的版本号。注意必须比上一次的号高。如上一次是1.0.0.1,那么这一次就应该是1.0.0.2。 2、单击“Export to info-file”按钮,输入与开发时相同的文件名,生成一个后缀为.inf的配置文件,然后将这个配置文件上传到你的网站,和升级文件放在同一个目录,如 3、点OK按钮,然后全部保存Delphi文件,然后编译运行。 4、将新生成的配置文件和全部编译后的Delphi文件复制到网站上指定的目录中,例如http://192.168.1.104:8080/update。覆盖以前的文件。注意:这时不用打包。因为这儿需要的不是打包的程序文件,而是打包之前的散件(未打包的文件)。 5、OK。 6、以后的升级都如法炮制了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值