试题库开发中非文本数据的处理(转)
一个设计优良的试题库系统,除了支持文本数据以外,还应该支持公式、图片、表格等非文本数据,这样才能很好地支持已有的试题形式。笔者前一阵子使用过一个“XXX考核题库系统”,该软件使用Paradox作为数据库,只能支持文本题目,无法满足现实试题的要求,为此对其进行了更改。[@more@]对于非文本数据的支持可以采用OLE嵌入Word文档的方法,但这种技术实现起来比较复杂,本文给出一种简单而实用的方法:非文本数据用rtf文档导入到存储,编辑器采用RichTextBox。RichTextBox是微软提供的一个ActiveX,导入到Delphi中之后,使用起来就同其他组
动态创建ClientDataSet的表定义
一直不明白ClientDataSet如何才能在不连接数据库得情况下,用程序创建起来,并打开数据集。[@more@]在研究了一下TClientDataSet数据集后,发现如果要让ClientDataSet打开的话(Open),必须满足三个条件中的一个:ProviderName属性赋值,即有数据源提供者。 Data属性赋值。即从其它已经打开的数据集中获得表结构和数据。 FileName赋值,即从本地文件获取数据和MetaData。这三个条件是TClientDataSet的Active属性的帮助中说的。思考一下,第一和第二基本被排除,我如果有了现成的数据集,还要创建干吗?第三个又不是那么容易,你哪知道文件
关于DBGird的分类颜色显示
TDBGird的分类颜色显示[@more@]实际上对于DBGRID的自画,delphi 提供了两个事件供我们使用,一个是画行的:OnDrawDataCell(Sender: TObject; const Rect: TRect; Field: TField; State: TGridDrawState);另一个是画列的:OnDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);这就给我们很大的方便。对于DBGRID的分类颜色显示,明显应该用第一个事件。那么怎么才能分类按颜色显示呢,实际上听起来很难,但实际上很简单。 首先定义一个类型为TColor的变长数组,然后在
利用delphi编写Socket通信协议程序
利用delphi编写Socket通信协议程序[@more@]一、Delphi与Socket 计算机网络是由一系列网络通信协议组成的,其中的核心协议是传输层的TCP/IP和UDP协议。TCP是面向连接的,通信双方保持一条通路,好比目前的电话线,使用telnet登陆BBS,用的就是TCP协议;UDP是无连接的,通信双方都不保持对方的状态,浏览器访问Internet时使用的HTTP协议就是基于UDP协议的。TCP和UDP协议都非常复杂,尤其是TCP协议,为了保证网络传输的正确性和有效性,必须进行一系列复杂的纠错和排序等处理。 Socket是建立在传输层协议(主要是TCP和UDP)上的一种套接字
关于TreeView控件结合数据库的使用
经常在网上看到一些人询问Tree的操作,尤其是结合数据库的。本人一直在用TreeView控件,略有一些经验积累,想整理出来与大家共享。目前手头还有些工作要做,可能不能马上让大家见到东西,不过我计划在春节之前完成这个想法。 先简要概括一下这次笔记的主要内容吧。一、把树存储到数据表中;二、从数据表中读出数据并建立树;三、对树结点进行添加、删除、修改;四、树的扩展应用----节点多选。笔记中包括所有树的操作原码以及相关存储过程。 数据表名称:TSysPara 系统参数表 数据表结构:ParaCode Varchar(60) 参数代码