积累日常生活的点滴,开发过程的心得。

TPanningWindow

用TPanningWindow为网格控件添加鼠标平移功能

前两天在写一个新的ColumnGrid的时候无意中发现了TPanningWindow这个有趣的类,这个类好像是从Delphi2006开始添加的,可以给TStringGrid添加用鼠标平移的功能,使用非常简单,在项目中Uses IMouse这个单元。然后运行使用了TStringGrid的程序,在StringGrid中点击鼠标中间的按钮,就会出现一个平移的光标,如下图示意。效果还不错吧:)

[img_assist|nid=166|title=TPanningWindow|desc=|link=node|align=left|width=100|height=58]

发布Sqlite Developer 2.27

这一版本增加了对Virtual Table的支持,同时表编辑界面中增加了同该表相关的索引编辑功能
下载地址
http://www.sharpplus.com/downloads/SqliteDev227.zip

CTags

CTags可以用来建立代码文件的快速索引

运行时切换窗体样式

1.这两天写的一个程序中一个窗体在某些时刻需要是一个MDI的子窗体,某些时刻又要是一个模态窗体,但是在运行时刻将

FormStyle从fsMdiChild改成fsNormal会导致窗体显示时不自然的闪烁一下,后来发现将窗体的默认属性设置为fsNormal,

同时Visible设定为False,在作为MDI窗体显示时,设置FormStyle为fsMdiChild就不会闪烁了。

2.如果要修改MDI的窗体显示大小和位置,一定要在OnShow事件中修改,否则会有闪烁。

发布Sqlite Developer 2.24

这一版本增加了对Sqlite3.3.8的可加载扩展和虚拟表的支持

下载地址

http://www.sharpplus.com/downloads/SqliteDev224.zip

Antlr的错误恢复机制

Antlr的错误恢复机制很重要,有利于写出很健壮的Parser,比如一般的单行注释需要有回车符号,但是有时用户在程序的最后会输入没有回车符号的单行注释,我们的Parser也要考虑这种情况

可以使用状态维护方式来处理这类不完整的Token,在Lexer中添加下列方法。

int state;

int getState() {
return state;
}

void resetState() {
state = 0;
}

 

将单行注释的语法由原来的

发布Sqlite Developer 2.21

修改了一些Bug,增加了查看主键索引,支持编辑命名的约束条件

下载地址 http://www.sharpplus.com/downloads/SqliteDev221.zip

为Source Insight添加SourceSafe的控制命令

  1. 首先确保你的Source Insight的ProjectSettings中的Project Source Folder和你的代码所在的根目录一致。
  2. 然后,点击Options / Custom Commands来添加自定义的版本管理命令添加Check In 命令
    • Run中输入命令行SET SSDIR=\\XXXX\VSS; SET SSUSER=chen; ss cp \;ss cp ProjectFolderName;ss Checkin $%r,替换ProjectFolderName为你的项目所处的VSS的目录名,设定SSDIR为SourceSafe的配置文件所处的共享目录名。
    • Dir输入框中输入%d
    • 去掉Pause When Done选项
  3. 依次添加Check out,Get Last Version等命令即可

同步内容