类库大魔王的日常

一本流水帐

各种吐槽,倒苦水,开坑,立Flag。毫无营养,慎入!


C++/Go, Windows/Linux/macOS, iOS/Android, server/client development

五一长假结束了

  五一长假终于结束了,这是最省钱的一次长假了,只买了个双肩背包和一瓶15ml的眼部护理凝胶,呵呵。本来还跟小丫头说,每次长假是一次比一次花得多,小丫头就说我就是这样变穷的。
  代码结构改掉,引出的问题还真的挺多的。因为希望能尽量减少对VCL的依赖,于是不用IntToHex,改用Boost::Format,突然发现有很严重的性能问题,调了好一会儿,甚至想过要放弃而改回VCL,最后发现,只要合理地整改程序结构,多余的操作不做,速度自然就提上去了。不过让我还是有点担心的是,Boost::Format是不是真有性能问题。暂时也不管了,反正能满足要求了,而且把AnsiString::Pos也换成用Boost::string_algo来实现。另外还有一个问题是,TCanvas还没能去掉,应该直接换用API画。
  其实这次代码重构的一大目的是为了把原来写在MainForm类中的3000行代码精减,初步目标是控制在1000行以内,如果能更少就更好了。另外一个目的是要把不同类型的功能划分成不同的模块来实现,这样也是为了能更好更方便地支持多种类型的插件和协件。
  再次,这回要把各种全局设置、协件、插件、外部工具等设置都做到同一个设置对话框里去,所以想要一个更好看点的界面,看到Foxmail里那个不错,观察了一下是用了TZlistbox控件,网上找了一下,好像是付费的。如果直接用TListBox就太土了点,又观察了一下VS2003里的向导,是用HTML做的,原来是没注意过的,也是因为MS用HTML做的界面经常做得像Native程序一样,所以也看不大出来,上次听同事说起过,今天看了一下,就是几个HTML文件在那里切换,自己实现几个接口就行了。当然,今天又得到一个教训是,在这种情况下,能让脚本做的事,就尽量让脚本做,放在C++里增加了不少复杂度,而且某群人说过比较极端却也不无道理的话,“一行脚本顶一百行C++代码”。比如原来我嵌入的WebBrowser里面没有XP风格,后来发现只要加一句HTML代码就行了。还有,一直没解决的屏蔽F5刷新的问题,在网上找了找,其实几行JavaScript代码就搞定了。
  最后,看到有个叫ShowHTMLDialogEx的API,可以直接弹出个对话框浏览HTML文件哦,比较方便。

本文地址:

https://blog.minidump.info/2007/05/e4-ba-94-e4-b8-80-e9-95-bf-e5-81-87-e7-bb-93-e6-9d-9f-e4-ba-86/

上一篇

Inno Setup挺好用的

  Inno Setup真的挺容易用的,小巧轻便,又免费。本来还专门整了个安装输入法的程序,把ime文件复制到系统目录下,再写一下注册表,调用一个API,最后把所有文件用WinRAR打包成自解压文件。其实这样的方案也不是不行,只是觉得自解压的界面丑了点,看起来更业余了点。于是抽空用Inno S...…

Software 全文阅读
下一篇

今天又浪费掉了

  上网聊了一晚上天,也没做什么事,现在体会到软件架构设计的重要性了,也体会到为什么会有人去发明什么UML了。  现在觉得似乎用VCL还是得用第三方控件啊,尤其是界面方面,装了几个控件包,试用了一下效果还是挺满意的。不过我最喜欢的界面控件应该是像VCLSkin或XPMenu那样,用原生VCL控...…

Job 全文阅读