打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
delphi的bugs
userphoto

2005.08.09

关注
在Delphi实际的开发中发现的问题
1、TDateTimePicker的错误
TDateTimePicker控件在读写日期时有很多错误,主要是日期不能及时刷新。
随便举一个例子:
新建一个Form,然后添加一个TDateTimePicker控件,随便放一个浮动型按钮例如TSpeedButton或者TToolButton等,相信这种方式用的会很多!
在浮动按钮的Click事件中加入很简单的代码:
ShowMessage(FormatDateTime(‘yyyy-mm-dd‘,DateTimePicker1.Date));
此时你通过直接修改TDateTimePicker的时间值来修改日期,然后激活浮动按钮的Click事件,你会发现在TDateTimePicker中反映出来的日期并不是TDateTimePicker真实的日期!多试几次你会发现问题更严重!
相信Borland公司的人应该测出了此错误,但是没有修复!
现在似乎明白为什么没有日期型的DB控件!
2、TDBGrid的错误
如果你是通过TDBGrid直接读写数据,你会发现问题很致命!
随便举一个例子:
新建一个Form,然后添加一个TDBGrid,添加相应的数据关联然后激活数据源,随便放一个浮动型按钮,相信这种方式用的也比较多!
在浮动按钮的Click事件中加入很简单的代码:
ShowMessage(ADOQuery1.Fields.Fields[0].AsString);
然后运行!
运行时首先选中TDBGrid中的一条数据(已经默认选中一条),然后滚动鼠标的滚轮翻滚数据,就象大家平时上网是滚动浏览网页或者在Excel数据区滚动浏览一样,然后在TDBGrid中单击鼠标,你会发现此时在TDBGrid中实际控制了两条数据,继续则可能出现多条!
继续下去!
如果你不停的下翻直至TDBGrid中的光标在鼠标的游标之下然后点击,然后激活浮动按钮的Click事件,你会发现在TDBGrid中激活的数据与数据源中实际的当前数据根本就不一致!
在实际应用中相信会碰到这种情况:我明明选择是这条数据,但进行后继操作的为什么不是这条数据?
3、TQuickRep的错误
TQuickRep历来以使用简单,功能灵活(当然是通过添加代码来实现)而著名,当然她的缺陷之多也同样有名,这当然也不是完全Delphi的问题。
随便举一个例子:
系统主窗口是的FormStyle为fsMDIForm类型,系统中的各个窗体采用模式窗体(ShowModal),这是一个很普通的应用。
在实际中系统主窗口往往是最大化(WindowState = wsMaximized)的,如果在模式窗体中预览报表:
QuickRep1.Preview;
如果你把报表预览窗口最小化,你会发现你根本就不能关闭任何窗口!除非通过Alt+Ctrl+Delete强行关闭!
所幸QuSoft公司已经发现了这个问题,在专业版(目前是3.6.2版)解决方案居然是在预览窗口默认是普通窗口而不是标准版中的将窗体最大化!
4、IDE开发工具的问题
相信大家至少99%以上是直接通过Delphi提供的IDE工具进行开发,在实际应用中为了减少EXE文件的大小(主要是因为调用比较大的第三方控件引起的)往往会通过取消部分VCL连接库(例如非Delphi自身的*.BPL)来完成,现在发现在Delphi中几乎不可能要么全部添加,要么都不添加!
不管你在[Build with runtime packages]中如何设置都不管用,似乎IDE工具只辨认那个Check或者CFG文件中的那个[-LU]参数而不管其它!
说明:对此目前依然没有确认是IDE工具的问题或者其它问题,只是一般认为是IDE工具的问题。
Hank
starfarm@263.net
2002.12.12
作者Blog:http://blog.csdn.net/Hank/
相关文章
Delphi的BUGS之我见
Delphi 6.0中属性编辑器的解决方案
解决了几乎所有Delphi+Access同仁的问题—动态创建、压缩Access数据库(*.MDB)
对该文的评论
CSDN 网友 ( 2004-10-15)
第一条没有什么问题呀,是不是作者搞错了
dreamnyj ( 2004-05-01)
呵。谢谢,还是记下。
softman11 ( 2003-04-27)
同意,delphi中的bug真的很多。因为我用过vb,所以一对比,发觉dephi虽然简单易用。但是很多控见使用的时候常常有这样那样的问题。但是MS的东西虽然没有这么体贴。但是人家的东西真的很稳定,bug也少。
zz3 ( 2003-01-25)
有些不是BUG,要自己编程实现,打开vcl‘s source看看!
hausen ( 2002-12-13)
Delphi的BUGS确实很多,希望各位同行在使用过程中把问题摆出来并共同解决.
下面列出在所有grid 类都存在的一个问题:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var rect:tgridrect;
begin
Rect:=stringgrid1.selection;
label1.caption:=‘left:  ‘+inttostr(Rect.left)+‘     top:  ‘+inttostr(Rect.top);
end;
Rect.left 等的值出现混乱.原因可能是Trect每次都没有初始化
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
转载DBGrid和DBGridEH
Delphi 7连接MySql
delphi2010 无法继承窗体的bug
Delphi 各版 初始窗体 Exe 大小 size
DELPHI下自定义包的作用,开发以及包文件的安装配置位置
delphi中的各种文件类型介绍【转】
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服