TEmbeddedwb的一个小bug

2016-02-19 14:18 32 1 收藏

图老师小编精心整理的TEmbeddedwb的一个小bug希望大家喜欢,觉得好的亲们记得收藏起来哦!您的支持就是小编更新的动力~

【 tulaoshi.com - 编程语言 】

 这几天不知道是不是人品出了问题,老是遇上一些小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;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  begin
    regWinRegistry := TRegistry.Create;
    try
      with regWinRegistry do begin
        RootKey := HKEY_CURRENT_USER;
        if OpenKey('SoftwareMicrosoftInternet ExplorerPageSetup', 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一个,仅作记录,以供有同样情形的同志参考。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1606673.html

延伸阅读
标签: 电脑入门
原来这是使用 Windows 7 内建的校正颜色 (Calibrate Color) 功能引起的问题。使用这个校正颜色功能后会产生一个 ICC 配置文件,之后 Windows 7 会采用它为默认显示,一旦使用校正颜色定义了这个 ICC 配置文件后,用 Windows 照片查看器时速度会变得像在爬行般的慢,只要删除这个 ICC 配置文件就会恢复正常。 如果你遇到这个问题又须要用到校...
《实况足球2012》惊现一个无敌BUG 发现一个BUG,不知道有没有人发过,在绿茵传奇模式下,比赛中电脑球门员准备发球门球的时候按下Esc,然后回放。这时候如果没有回放刚才的慢动作、而是定在球门后面的那排摄相机上,那就恭喜了,你即将获得一个进球!!!关掉回放球门员就傻在原地不会动了、你只用跑过去把球带进球门就是! 这一招也不是百试百...
《地狱边境》神作,但是发现一个bug- 刚通关,不想多说,神作啊 不过我发现了一个bug 好吧,这其实不能算bug,只是不符合物理学原理罢了:第一关有一条长河,是需要坐船通过的,在坐船的时候你可以尝试跳跃,这时你会发现你越跳越后面去了!按照惯性定理,人在船上跳是不会改变人在船上的位置的啊 鉴于有很多人吐槽lz的物理水平,并且提出有风...
多花时间陪孩子 感情是需要时间去培养的,也需要发费精力的,这两点很重要。若是有时间,可以都和孩子一起玩玩小游戏或者是和孩子多一些其他的互动,其实很简单,多听听孩子说话,和他们多聊聊天,这样他们会记住,爸爸是爱我的,会记住这些小细节。要是你总是说自己很忙,找一些借口说没有时间,孩子总会有一种被你们忽视的感觉,就会...
这个小软件的功能,自然无法同久已成名的WPC(wallpaperchanger)相媲美,但由于是自制的,用起来又别有一番乐趣。古人言,“独乐”不如“众乐”,所以我拿出来与大家共享,又希望能让初学者对于VB编程窥见一斑。 这个小软件所用控件仅一列表框,两文本框,两标签,两命令及一定时控件而已。 源代码: DeclareFu...

经验教程

625

收藏

58
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部