转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
TEmbeddedwb的一个小bug         ★★★★

TEmbeddedwb的一个小bug

作者:闵涛 文章来源:闵涛的学习笔记 点击数:725 更新时间:2009/4/23 18:30:35

    这几天不知道是不是人品出了问题,老是遇上一些小bug。
    昨天在公司里写了一个有浏览网页代码的小程序,图方便,使用的是TEmbeddedwb控件,这个控件在delphi自带的TWebBrowser控件上又提供了一些选项和方法。
    拿回家以后打开这个工程,在打开浏览页面窗口的时候却出错了:“Error Creating Form:'''''''' is not a valid floating point value”。这个窗口上没有其他控件,就只有TEmbeddedWB控件,看情况应该是打开窗口时装载该控件时出的错,而错误应该是发生在作字符转换到float型时出现的。
    新建一个工程,放上一个TEmbeddedWB控件,灭有问题啊。关掉后再打开,问题重现了。
    打开EmbeddedWB.pas单元,首先查找StrToFloat函数,呵,还好,只有两个地方用到,一看都是在GetPrintValues函数用的,函数内容如下:
procedure TembeddedWB.GetPrintValues;
var
  S: string;
  regWinRegistry: TRegistry;

  function ReadMargin(key: string): Real;
  begin
    S := RegwinRegistry.ReadString(key);
    S := Stringreplace(S, '''' '''', '''''''', [rfReplaceAll]);
    if DecimalSeparator <> ''''.'''' then
      S := Stringreplace(S, ''''.'''', DecimalSeparator, []);
    if Printoptions.Measure = mMetric then
      result := StrtoFloat(S) * InchToMetric else
      result := StrtoFloat(S);
  end;

begin
  regWinRegistry := TRegistry.Create;
  try
    with regWinRegistry do begin
      RootKey := HKEY_CURRENT_USER;
      if OpenKey(''''Software\Microsoft\Internet Explorer\PageSetup'''', False) then
      begin
        PrintOptions.Header := Readstring(''''header'''');
        PrintOptions.Footer := ReadString(''''footer'''');
        PrintOptions.Margins.left := ReadMargin(''''margin_left'''');
        PrintOptions.Margins.right := ReadMargin(''''margin_right'''');
        PrintOptions.Margins.top := ReadMargin(''''margin_top'''');
        PrintOptions.Margins.bottom := ReadMargin(''''margin_bottom'''');
      end;
    end;
  finally
    regWinRegistry.Free;
  end;
end;

    这个函数是在注册表中去取IE的打印设置,打开注册表一看,果然没有''''margin_left''''这四个项,加上这四个字符串值,并赋上初值0。打开窗口。OK。高兴之余也不禁感慨,这个xp的操作系统装上以后还灭怎么摧残过,照理这四个键不是偶搞掉的,也就说系统装上就没有的,到底是microsoft人品有问题还是偶人品有问题已经不重要了,可是偶现在才明白,原来大师的程序也有bug啊,为什么不用StrToFloatDef函数哩?
    今天在公司机器上一看,果然有这四个键,每个值为0.75。

    小bug一个,仅作记录,以供有同样情形的同志参考。


[聊天工具]小心Foxmail邮件模板BUG  [聊天工具]OICQ---存在重大BUG?
[系统软件]Windows记事本中的Bug  [常用软件]解决压缩软件的Bug技巧
[Delphi程序]Delphi 6 SOAP 源码中的BUG修正  [Delphi程序]改良控件-Delphi自带控件Bug的消除
[Delphi程序]不知您是笨蛋,还是我是笨蛋,关于Delphi的大Bug  [Delphi程序]关于Delphi大Bug的更详细的例子
[Delphi程序]Delphi的大Bug  [Delphi程序]DELPHI 6 Update 2# 的 Bug 及其解决方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台