Delphi7的bug多多,这是我发现的几个及临时解决方法。(200分)

W

www

Unregistered / Unconfirmed
GUEST, unregistred user!
1. Tabsheet的背景色问题。相信大家都用过TPageControl,Tabsheet
  就是同pagecontrol一起使用的,在new page之后,tabsheet就建立
  在pagecontrol上了。但在D7中,在包含了windowsxp.res之后,
pagecontrol 上的所有的tabsheet的背景色都是白色的,无法改变。
  放在tabsheet上的控件也一样是白色的,不能改变颜色。
临时解决方法:备份comctrls.pas,然后修改原码的第4729行
ControlStyle := ControlStyle + [csAcceptsControls, csNoDesignVisible,
csParentBackground];
修改为 ControlStyle := ControlStyle + [csAcceptsControls, csNoDesignVisible];
2. 对于放在tabsheet上的panel,即使是tabsheet经过了上述修改,但panel的背景色
  仍然是白色的,修改panel的color属性也无效。后来经过反复摸索,发现把
  panel的parentbackground属性该为true,然后再改为false就可以了。真是
  奇怪的panel。
解决办法:由于我没有认真研究panel的原码,所以无法给出具体的解决办法。
  上述方法已经可以凑合用了。
3. 同样是上面的tabsheet,放上panel后,按照2的方法可以设置背景色,但对于
  checkbox就不可以了,始终是白色。
  临时解决方法:把checkbox放在经过2处理后的panel上。
4. Treeview节点拖放的问题。在设置了treeview每一个节点的stateindex之后,
  在每个节点前都会显示一个图标,但是在经过拖放之后(就是调用了item的moveto方法),
  你会发现,节点前面的图标不见了,但stateindex仍然正确!!
临时解决办法:修改comctrls.pas的7020行,
   if not Deleting and (Value <> StateIndex) then
修改为
   if not Deleting then
  当然这样做有没有别的问题,我还没有仔细考虑,这只是我为了将我的
D5工程移植到D7上时发现的问题而采取的临时措施。
5. D7的编译速度太慢了。编译速度和编译质量是Delphi的立身之本。可是D7中的编译
  速度真的不敢让人恭维。我的一个比较小的程序,使用build all,大约要4到5分钟。
  开始我还以为Delphi死掉了呢,经过了好几次,我才发现是编译速度慢的原因。
解决办法:没有。
  
以上只是我在移植D5工程到D7时遇到的一些问题中的几个,其他不再赘述。
大家看看,我们喜欢的Delphi已经变成这样子了。真希望各位富翁们能够打入
Borland内部负责Delphi产品,还我们一个原来的Delphi.
如果大家感兴趣,可以跟我讨论。
我的网站:http://www.tommstudio.com/
论坛: http://www.tommstudio.com/bbs/
   
 
是不是是你自己的机器的缘故,一般来说不大可能一个小程序要编译4-5分钟的。Delphi7我也
用过,可是从来没有要编译4分钟以上的。
 
大侠正厉害,发现了这么多问题,还想了这么多对策,佩服,佩服[:)]
 
我一直在用delphi 7,从来没有出现编译这么慢的情况,是不是你的机器问题?
 
编译这么慢,不会吧?我不相信。
:)
 
我用了好长时间了,编译速度没你说的那么夸张
 
>>5. D7的编译速度太慢了。
Project -> Options -> Compiler Messages
把最后三项去掉就快很多了(这是为了.net兼容而加的检测,完全可以去掉)
 
高手,发现这么多BUG;
我的D7编译速度还是挺快的呀!
 
没有发现你提到的Bug和编译慢的问题,也许你的机子有问题吧,我在Win98SE和Win2k下都试过
 
我也有用delphi7,好像不慢了。去你的网站看过了,不错
 
一个BUG,谁能改改!!
如果一个菜单项指定了一个 ACTION,运行没问题!
我就不能保存这个菜单项的CLICK了!!

 
还没这么慢吧
 
感谢www的提示, 不过我认为对于第1, 2个问题你的临时解决办法并不合适.[:D]
ControlStyle是TControl类的一个Public属性,所以我们不需要修改ComCtrls.pas,
只要在程序的适当地方将其ControlStyle属性的csParentBackground给去掉去可[8D]
此办法适用于所有TControl的继承类.
很显然这并不是一个Bug, 而是一个改进, 只是我们还不适应而已.
我的问题已经解决.
例:
procedure TForm1.Create(Sender: TObject);
begin
Panel2.ControlStyle:=Panel2.ControlStyle - [csParentBackground];
Panel2.Color:=clRed;
CheckBox1.ControlStyle:=CheckBox1.ControlStyle - [csParentBackground];
CheckBox1.Color:=clGreen;
end;
 
我还从来没有用d7编译成功过。每次都说没有注册dll
 
skyweb说的没错.
 
人非圣贤,岂能无过,delphi的BUG确实很多。
我在作一个WEBSNAP的程序的时候,连接数据库,如果数据库的名字变了,或删掉了。
而你又是在编译时连接的话,累了,delphi一启动就自动关闭了,连个非法操作都没有啊。
 
学习中!
 
顶部