Delphi控件的拿来主义(三)

2008-04-09 04:29:11来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


----问题二及解决方案


每一条导入表中的纪录除了ISO文件中的内容外,还需要有书的类型,期号,以及ID号,而TPgCSV在插入新纪录时只处理了同文本文件中的数据相关的字段,因此,这些字段的内容需要我们自己来加入。不用说,很自然的就会想到Table中的AfterInsert事件.但问题是,我的Table在DataModule单元中,我必须传参数到AfterInsert事件中,麻烦!同时,这样的处理会带来维护上的混乱,一个单元里面发生的事件应该尽量由这个单元里面的函数或过程来处理。于是,我又想到了在当前单元中写一个处理过程,然后在程序运行时把这个过程指派给Table的AfterInsert事件,导入结束后再禁止掉。可行,但还是麻烦!既然大多数情况下都会遇到这样的问题,那何不一了百了,把这个事件封装起来呢.


同问题一一样,这里我们还是需要一个事件处理过程AfterInsert.这一次应该加在哪儿呢?大家肯定一眼就看出来了:


procedure TPgCSV.CSVToDataSet;


begin



FDataset.DisableControls;


while (not Eof(FFile)) and (not FStop) do


begin


//read from CSV


Readln(FFile,RecordString);


//xm4014''''s modification


if Assigned(FRegulateString) then


FRegulateString(self,RecordString);


//add new record


try


FDataset.Append;


//应该加在这儿!


//xm4014''''s modification


if Assigned(FAfterInsert) then


标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:progressbar的填充颜色的改变

下一篇:Web Application 開 發 利 器 - WebSnap(七)