这就是尝试使用新控件的代价,大家要引以为介啊,关于Dev系列控件的问题.

jxydhzw 2009-11-02 11:48:33
之前使用的是Dev控件的V3X,具体哪个版本不知道.是网上下来的.是朱红宾汉化的那个版本,打成安装包了,这个版本的我觉得挺稳定,不过有些Bug,见图:


后来我见Dev出了V45.盒子下的.好像是老毛子那边弄的一个.汉化功能挺方便,发布一个ini文件就行,不像原来要在pas文件里改,还有就是皮肤这块挺漂亮,我也想做个漂亮的界面,这样用户最起码看起来舒服,用起来爽,于是乎,就像升级到V45这个版本见图:


用户见了还是挺喜欢的,但是好景不长啊,,出了问题啦,我总结如下:
这里我要说明一下我系统的大概.DM数据窗体一直存在,并且优先与任何窗体创建,DM数据窗体中放了
cxLocalizer: TcxLocalizer,用来做汉化, Skins: TdxSkinController,用来做皮肤界面统一,编译的时候就编译了一个UserSkin皮肤,使用的时候,是从iMaginary.skinres文件中加载的.

1.发现界面有时会出现遮盖的现象,如图:
窗体一显示时遮盖现象


设置容器类组件visiable假后,再设为真:



2.发现 TcxTabControl控件会出现下面这种情况,不知道啥原因?如图:







3.重要问题出现了,TcxComboBox控件问题,我程序中所有的TcxComboBox控件都是lsEditFixedList类型,如果打开其中任何一个有TcxComboBox窗体,你点下拉键时,随便选择一个选项,此时,你鼠标左键单击别的控件,其他的控件无法获得焦点!!可能有时能,但我这不行.基本上不行,如果鼠标右键单击别的控件,则能,但有这样又出现问题了,单击右键仅会出现一次windows默认的右键菜单,以后就不会再出现,就算把这个窗体关了,再重新打开,还是不会出现windows默认的右键菜单!!可能有朋友会说按tab键,这我也试过.我所有的窗体都设计好taborder序号,按tab键后.它有时会出现正常顺序,有时则会跳过某些控件.如1.3.4.7 它会跳过2,5.6.这样的.(在点击了某个TcxComboBox,选择了某个选项,再去操作别的控件的情况下是会有问题,如果是窗体一打开后,直接按tab键还是能正常跳格的.)





4.CPU使用率狂高.有时,打开某个界面,CPU使用率狂高.一关这个界面,又降了,打开,又升上去了.我注意了一下.还是有cxgrid控件,我特别观察了下.CustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; 事件中我写有一些代码,注释掉后,CPU使用率低了下来.问题还挺严重,

以上的情况,是在V45那个版本才会出现的.但如果在之前V3x那个版本,就TcxTabControl使用Nativestyle为true的特效下会会出现黑块,tab标签页全是黑色的,不能正常显示文字或窗片的问题.

我的想法:
1.我大概认为应该是V45Dev控件可能有些问题,而且皮肤控件问题的可能性很大.应该我查看过我之前使用V3X版本的程序,不会出现遮盖,TcxComboBox问题,CPU使用率狂高.
2.现在返回原来的V3x版本可能不行了.第一,客户现在适应了现在的界面,不愿意返回,第二,汉化比之前完整.


总结:
劝所有的朋友特别要注意,以后千万别随便升级控件,否则会很麻烦,还是别当小白鼠了..新出来的东西还有很多问题有待解决.随便上项目,最终害死人啊..我就是这样不愿意升级到D2010.还是用D7.无奈,还是在控件这步上栽了..这是血的教训啊!!!

发贴是为了:
1.希望有朋友能够想想解决方法,
2.给启发后面的朋友,留作教训之用.
...全文
912 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jxydhzw 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 iamduo 的回复:]
1、其实我用DEV46升级了一个ERP程序,还是蛮好用的。也没有什么报错。(至少客户来联系,从来没有界面问题)
2、我最近在做一个分析程序。界面比较多,其中类似。
TForm2.Create(nil);
try
。。。。//这里有一系列计算过程。
  ShowModal;
finally
  Free;
end;
并且 Form2.OnCreate中写计算过程的话。
就会出现主程序不刷新。菜单开启的话,菜单的影子也还会保留在界面上。

lz这样的情况,我想也应该是在类似地方做了复杂的事情,才导致的吧。
特别是OnCreate,OnPaint,OnDraw等地方,
控件遮盖,不会是在 OnResize里写东西了吧?

然后解决方案其实也很简单。
你就一口咬定用户系统配置比较低,不知道gdiplus的运算。
你可以提供一个界面选择出来,配置低的让他们用Standard,Flat,Ultra等5个。

[/Quote]



没有的...我就在OnCreate事件里写了少许代码,一般就是变量初始化,以后数据集初始化..再就是ONClose里写释放相关的代码...其他没有代码了... 你说配置低...我看挺难说过去...他们的配置都是1G内存..单核的P4系列处理器...128M独显....配置低这种说法,,我是说不出来了......汗啊....
ck_邬 2009-11-03
  • 打赏
  • 举报
回复
我也从v33升到v46..但我还保留着v33的版本,以前做的程序都还没升级..呵呵..旧程序不敢乱来.
现在只有新程序才会用v46来做..
winstonbonaparte 2009-11-03
  • 打赏
  • 举报
回复
我現在一般只用Raize或是原生控件
iamduo 2009-11-03
  • 打赏
  • 举报
回复
1、其实我用DEV46升级了一个ERP程序,还是蛮好用的。也没有什么报错。(至少客户来联系,从来没有界面问题)
2、我最近在做一个分析程序。界面比较多,其中类似。
TForm2.Create(nil);
try
。。。。//这里有一系列计算过程。
ShowModal;
finally
Free;
end;
并且 Form2.OnCreate中写计算过程的话。
就会出现主程序不刷新。菜单开启的话,菜单的影子也还会保留在界面上。

lz这样的情况,我想也应该是在类似地方做了复杂的事情,才导致的吧。
特别是OnCreate,OnPaint,OnDraw等地方,
控件遮盖,不会是在 OnResize里写东西了吧?

然后解决方案其实也很简单。
你就一口咬定用户系统配置比较低,不知道gdiplus的运算。
你可以提供一个界面选择出来,配置低的让他们用Standard,Flat,Ultra等5个。
delphi_911 2009-11-03
  • 打赏
  • 举报
回复
只用标准控件。
kobaer 2009-11-03
  • 打赏
  • 举报
回复
我也留意一下
W9757 2009-11-03
  • 打赏
  • 举报
回复
就是怕不稳定.
jxydhzw 2009-11-02
  • 打赏
  • 举报
回复
嗨...我也有备份,但是还原回去还挺难了....这下才知道.上了贼船了....555555555哪位神仙大姐来救我啊!!!
7年 2009-11-02
  • 打赏
  • 举报
回复
还是少用的好。
iamduo 2009-11-02
  • 打赏
  • 举报
回复
我用dev,所以,程序备份很重要。
不能用的时候,咱改回原来的。
beifangke 2009-11-02
  • 打赏
  • 举报
回复
dev的高版本编译都很慢,不知道为什么
jxydhzw 2009-11-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sz_haitao 的回复:]
所以我是尽量不碰那些大的组件包
[/Quote]

不用可能还是说不过去.要用就要用稳定的,,这样你写程序,功能强大,界面漂亮,还有就是事半功倍..还是有可取的..就是怕不稳定.
哈哈V大侠 2009-11-02
  • 打赏
  • 举报
回复
我现在还用D6
haitao 2009-11-02
  • 打赏
  • 举报
回复
所以我是尽量不碰那些大的组件包
de410 2009-11-02
  • 打赏
  • 举报
回复
留意一下~~
bdmh 2009-11-02
  • 打赏
  • 举报
回复
这就是dev组件的代价
apilove 2009-11-02
  • 打赏
  • 举报
回复
嗯,的确应该小心使用
Q315054403 2009-11-02
  • 打赏
  • 举报
回复
个人习惯只用标准控件,只用一个报表ReportBuilder,或者自己写点简单的控件
偶在工厂,非开发商业性程序,呵

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧