to kinneng:
我指的不是你的bpl(对不起,没有源代码的bpl文件我一般不会去使用),而是你的demo,楼主可以重新在D7下面进行完整编译后再上传你的网页,以便没有D7运行库的DFW也可以测试。
以下是我自己的测试代码,测试环境
4 2.0+512内存+独立显卡+WIN2K PRO,编程环境D6。
运行结果是:15000条记录,3个简单的字段(SQL SERVER 2000,使用的是ADOQuery,如果使用BDE,估计会更快),将DBGRID的滚动条从开始快速移动到结束,大概要3秒左右,应该可以接受。
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOQuery1.Open;
Fdatalink:=TDataLink.create;
Fdatalink.DataSource:=self.DataSource1;
Fdatalink.BufferCount:=self.DataSource1.DataSet.RecordCount+10;
end;
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
fdatalink.Free;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect;
DataCol: Integer;
Column: TColumn;
State: TGridDrawState);
var
s: string;
begin
s:=inttostr(self.Fdatalink.ActiveRecord+1);
if DataCol=0 then
self.DBGrid1.Canvas.TextOut(Rect.Left, Rect.Top, s);
end;