
写SQL语句是一个非常枯燥的事情,事实上凡是大量重复的东西,都是非常枯燥的。
因此我们就想到要改变,于是有人就搞出对象关系映射的框架来,Java中的Hibernate就是个活生生的例子。
c#也是不甘落后的,它搞了个EF框架,即Entity framework。
唯独还在Delphi世界里面苦苦挣扎的人,简直就是苦不堪言啊。每增加一张表,就得写每一次insert,update,select的语句,这是个多么苦逼的事情!

在做吵吵检验科试剂管理系统的时候,我突然发现一个问题。由于我是用菜单来控制功能窗口打开的,如果用户点击两次,就打开了两个窗口,如何解决这个问题?当更换了用户,用户权限变化了的时候,如何关闭原来的窗口?
这还不简单,声明一个窗口的全局变量不就OK了么,要关闭就直接form.close就卡可以了嘛!

AlphaControl是delphi下的一款老牌的皮肤控件,目前的最新的版本号是V8.4.1,在vclskin已经停止开发的情况下,选择AlphaControl用于win32程序的界面开发,是一个不错的选择。
AlphaControl简单易用,简单到仅仅拖几个控件,就能够更换皮肤,而且原有的delphi的标准控件也可以随之变化。使用AlphaControl可以轻易的实现透明的窗口,还包括窗口的渐变动作等,虽然有一定的内存泄露问题,但是相对来说,还算可以。

随着Google Reader的终结,最近考虑做一个程序用于读取独立博客的最新文章和内容,以方便自己能够及时的获得所需要的信息。实现这样一个程序并不困难,使用xml文档读取rss的路径就ok了。但是我在将rss的时间格式,转化为标准的东八区的时候遇到了困难,delphi或者很多其他的程序语言并不存在类似的库类支持这样子的转换,万般无奈就只好自己搞了。

delphi的代码提示功能老实说做的不是太好,很多时候它都会失效。当然vc也是如此,但是vc有一个叫Visual Assist X插件非常好用,能够自动识别各种关键字、系统函数、成员变量、自动给出输入提示、自动更正大小写错误、自动标示错误等,有助于提高开发过程的自动化和开发效率。网上找了半天,发现了delphi IDE的一个插件cnPack。

最近写的一些和LIS有关的小程序,需要在本地维护一小组的数据,于是乎用到了动态数组和结构体。之后发现消耗的内存还蛮大的,于是乎研究了一下delphi的动态数组的创建和内存释放的问题。
第一种:setLength
delphi提供的setLenth函数简单好用,可以很方便的为数组分配内存和释放。本次试验声明了一个ayy的动态数组,然后用两个按钮分别来分配和释放内存,测试代码如下:

老实说,很久没有用到delphi之后,很多功能都已经不太熟悉了,折腾了快两个小时,也堪堪才把stringgrid这个列表控件和adorequest数据库控件给搞好了。要实现的功能挺简单,即把数据库中的数据都放到一个列表框里面来。也许控件不是那么好用,号称rad即快速开发平台的delphi也不见的就那么高效了。

吵吵在检验科工作的这天就接到一个任务,即精液报告的改进,要将精子快速向前运动和慢速向前运动这个A级和B级的结果相加打印出来。打印的模板倒是可以更改,但是却无法将A级和B级的值合并起来再打印。无奈之下翻了翻数据库,看到数据库中存放了A级和B级中的精子数,所以萌生了一个想法,就是把B值加入到A值中去,然后就可以输出A为总的向前运动了。

uses MsXML;
{函数}
function Translate(AAppID: string; AText: string; InLanguage: string=’en’; OutLanguage: string=’zh-CHS’): string;
const
BaseUrl = ‘http://api.microsofttranslator.com/V2/http.svc/Translate?appId=%s&text=%s&from=%s&to=%s’;
var
Url: string;
req: IXMLHTTPRequest;