2010年07月 存档

VCL的麻烦和Windows编程

the_time(__('l, F jS, Y', 'kubrick')) ?>

VCL是高手的杰作,想当初MFC就是抄VCL的。可惜盖茨实在厉害,把Borland的高手挖走了。因此目前Delphi也就是混个不生不死。

可是习惯了说一种语言就懒得换了。昨天遇到一个问题。就是在打开加密的rar文件的时候需要问密码。因为即时做书程序是一个线程,而VCL is not thread-safe,所以在显示对话框的时候,就不能用InputQuery(一开始用了,程序就卡在那里,看不到对话框,才想起来这个问题)。这时得调用windows函数来显示对话框。唉,这都是20年以前做的事了,想不到现在却要去捡起来。

网上找了下,资源格式是没找到,不过有人说ResEdit可以编辑。下载下来,果然好用。设计好一个简单的对话框资源,生成的rc文件如下:

//省略一些头文件信息

LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG1 DIALOG 0, 0, 186, 95
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION “Dialog”
FONT 8, “Ms Shell Dlg”
{
    DEFPUSHBUTTON   “OK”, IDOK, 28, 59, 50, 14
    PUSHBUTTON      “Cancel”, IDCANCEL, 94, 58, 50, 14
    EDITTEXT        IDC_EDIT1, 27, 22, 118, 14, ES_AUTOHSCROLL
}

把该资源编译一下,加上一个对话框函数,连接到Delphi程序,搞定。

关于uread的版本号

the_time(__('l, F jS, Y', 'kubrick')) ?>

uread的版本号分为3个部分。如0.54.414表示主版本号是0,次版本号是54,build号是414。对于一般的软件开发而言,build号本来是编译器采用的一个术语,每一次完整的编译都会增加这个号。但是这不适用于uread. 每次uread增加build号,一般要进行很多次的编译调试。至少增加一项新功能或修复一个bug。目前,每增加一个次版本号,uread会自动升级。

本人开发软件喜欢从0.01.1这样的版本号开始,表示第一个可以运行的版本。现在有些软件主版本号更新飞快,10.0以上的软件比比皆是。这不一定代表升级得快。而敢于在1.0版本以下就发布的软件,一般都是比较专业的人员开发的。

uread开发模式漫谈

the_time(__('l, F jS, Y', 'kubrick')) ?>

uread属于一个人开发的软件,并且是软件发布前没有经过任何正式的测试程序。因此,用户就是测试员。可惜的是,这种模式对用户要求较高,用户需要比较合作地向作者反应感受。

几个月的用户群的经验表明,绝大部分用户都是极其菜鸟的。由于uread是免费软件,和他们交流基本上是浪费时间。以后,不对uread免费版用户提供任何服务。uread本来就是因为一个偶然事件而产生,虽然可以免费下载,但是普通用户绝不是uread所考虑的对象。

到目前为止,uread提供的搜书和下载功能是极其强大的。与谷歌相配合,99%的网上书籍都可以用uread下载。然而,大部分的喜欢度娘和360的“读书”用户,表现及其弱智。古代读书的都是聪明人,现在么,谁知道。总理不是在号召读书么。

起点之类书籍的排行表明,热门的书籍大部分是些垃圾书。uread试图引导读者,韩寒博客的引导阅读实验表明,用户是可以被改造的。

很多uread上面的功能只是作者的一些实验,大部分没有任何文档说明。聪明的读者可以通过uread看清自己。

诗人老邱

the_time(__('l, F jS, Y', 'kubrick')) ?>

同事老邱是个大诗人,两年前开始写古典诗,经常通过手机收到他的新诗。基本上一周至少一首,两年来怕有200首了。老邱的诗歌描写现实,偶尔可以起到新闻的效果。前天收到一首如下:

赤日炎炎似火烧

知君日日躲空调

又是五天热中过

周末何处觅逍遥

当时正在出游中,于是回了一首:

我今在君故里游

洪水虐后屋未修

王孙公子今安在①

遥指林中数土丘②

①水浒中有“赤日炎炎似火烧,王孙公子把扇摇”②丘与邱同音。③可以在至善读书中搜索“邱仲潘诗集”得到老邱的早期诗作。