TEmbeddedwb的一个小bug

原创 2004年11月04日 15:02:00

    这几天不知道是不是人品出了问题,老是遇上一些小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一个,仅作记录,以供有同样情形的同志参考。74_74.gif

修改bug的一个小故事

今天在网站上看见一个故事,很有趣,但也值得思考:那还是80年代初期,我爸爸在一家存储设备公司工作,这个公司现在已经不存在了,它生产磁带机和驱动这些磁带高速运转的气动系统 —— 这是那个时代的产物。他们...
  • qq_25673113
  • qq_25673113
  • 2016年09月09日 15:23
  • 204

Delphi7中TEmbeddedWB控件弹出Javascript错误提示框问题

TEmbeddedWB控件是Delphi中常用的liu
  • lwsas1
  • lwsas1
  • 2014年07月15日 10:03
  • 1005

一个小程序的小BUG

先看程序: #include #include #define N 1000000 //#define M 10000 #define M 1000000 void main(void) { ...
  • yihualuomeng
  • yihualuomeng
  • 2013年12月13日 16:52
  • 766

微信小程序bug总结, 不定期更新

上传文件, 回应的json需要手动JSON.parsewx.hideLoading();看起来是个同步的api, 不过有时需要异步调用, 如:setTimeout(() => { wx.hideL...
  • butterfly5211314
  • butterfly5211314
  • 2017年10月24日 12:38
  • 648

小程序解决微信bug

以下是我朋友少夫白杰对小程序的产品思考他的简书链接: http://www.jianshu.com/p/ef6ab8b0b624小程序解决浏览内容时回复微信的问题产品背景在微信中阅读各种资讯相信已经...
  • u010321471
  • u010321471
  • 2017年01月19日 16:46
  • 997

五一、微信小程序开发中踩过的坑(遇到的bug)

CSS 能使用calc 官方组件的样式可以通过!important覆盖 JS事件 需要注意微信提供的接口是否为异步的,跨页面的异步数据可以通过app.globalData 或者在app这个变量上添加回...
  • zm06201118
  • zm06201118
  • 2017年12月06日 18:12
  • 5062

适合小团队的Bug管理工具

firebug or 禅道!
  • BuquTianya
  • BuquTianya
  • 2016年04月11日 16:58
  • 1038

关于JAVA的一个小bug,拆分字符

  我用经常用JAVA,按某一字符,折成数组如:String st="aaaaaaaaa,bbbbbbbbb,cccccccccc,ddddddddd";String sts[]=st.split("...
  • aptweasel
  • aptweasel
  • 2008年03月22日 23:51
  • 476

微信小程序开发(三)textarea的bug

最近在开发一个商城项目,其中有一块是评价,就像淘宝手机端的评价那样。首先看看我的页面结构。 就是一个页面可以多多个商品进行评价,每个写具体评价的位置是一个textarea。使用微信小程序开发公司...
  • zhuming3834
  • zhuming3834
  • 2017年06月10日 13:47
  • 5070

linux 一个小bug

fork() 执行后,父进程和子进程共享代码段。我当时还不清楚子进程运行的时候,到底是从头开始执行还是从 fork() 开始执行。fork 这个单词的字面意思是分叉,按这个逻辑进程应该是从 fork(...
  • hanxin1987216
  • hanxin1987216
  • 2009年09月30日 09:05
  • 376
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TEmbeddedwb的一个小bug
举报原因:
原因补充:

(最多只允许输入30个字)