之前使用的是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.给启发后面的朋友,留作教训之用.

解决方案 »

  1.   

    dev的高版本编译都很慢,不知道为什么
      

  2.   

    我用dev,所以,程序备份很重要。
    不能用的时候,咱改回原来的。
      

  3.   

    个人习惯只用标准控件,只用一个报表ReportBuilder,或者自己写点简单的控件
    偶在工厂,非开发商业性程序,呵
      

  4.   

    1、其实我用DEV46升级了一个ERP程序,还是蛮好用的。也没有什么报错。(至少客户来联系,从来没有界面问题)
    2、我最近在做一个分析程序。界面比较多,其中类似。
    TForm2.Create(nil);
    try
    。//这里有一系列计算过程。
      ShowModal;
    finally
      Free;
    end;
    并且 Form2.OnCreate中写计算过程的话。
    就会出现主程序不刷新。菜单开启的话,菜单的影子也还会保留在界面上。lz这样的情况,我想也应该是在类似地方做了复杂的事情,才导致的吧。
    特别是OnCreate,OnPaint,OnDraw等地方,
    控件遮盖,不会是在 OnResize里写东西了吧?然后解决方案其实也很简单。
    你就一口咬定用户系统配置比较低,不知道gdiplus的运算。
    你可以提供一个界面选择出来,配置低的让他们用Standard,Flat,Ultra等5个。
      

  5.   

    我現在一般只用Raize或是原生控件
      

  6.   

    我也从v33升到v46..但我还保留着v33的版本,以前做的程序都还没升级..呵呵..旧程序不敢乱来.
    现在只有新程序才会用v46来做..
      

  7.   


    没有的...我就在OnCreate事件里写了少许代码,一般就是变量初始化,以后数据集初始化..再就是ONClose里写释放相关的代码...其他没有代码了...  你说配置低...我看挺难说过去...他们的配置都是1G内存..单核的P4系列处理器...128M独显....配置低这种说法,,我是说不出来了......汗啊....