发布最新版本的EXDBGrid,显示序号,排序,拼音五笔检索下拉框,数值计算器,超级好的过滤系统,合计功能,嵌入控件等等(200分)

  • 主题发起人 主题发起人 kinneng
  • 开始时间 开始时间
界面比较漂亮。下拉框关闭用的不是消息机制吧,下拉框容易出现多个出来,而且滚动条还能滚动,
 
屏幕刷新好像有点问题:点一个下拉框后有时候会有一个黑色的框留着,有时候点下拉框选择一条数据后,这个框一直不会自动关掉。要选另外一个框才会关...是否有这种问题?
 
to onlyonekgx
这种代码,经不起考验的,我已经在这跌到了无限多次,不要再步后尘了。
to 各位
下拉框有这么糟糕,怎么我这几台机器看不到这样的问题,比如我家里,Win2003/XP系统,
400兆内存,1G的菜2CPU,16兆显卡,大家能不能将配置,告诉我?谢谢
下拉框有很多关闭方式,包括消息,比如点击其它程序,也有强制关闭,比如点击下拉框
本身。
 
我是1G的RAM,1.4G的CPU
下来框同时显示应该和显卡没有关系,估计是哪个事件没有处理好。
留有阴影,可能会跟显卡有关。想当年D5的时候就有显卡的问题。不过,我想你的程序不会写的那么底层吧
测试自己的程序,一般会按照设计思路来测试的,许多情况考虑不到也是正常的。表格很容易出现两个下拉框同时显示的现象,当然还有没有刷新的问题
 
我知道了,是这样的,Demo的字段没有指定下拉框类型,控件本身有些判断的,但能力有限,因为可以有几种任人选择,现在指定了就不会出现这问题,谢谢各位。
还有上面那段序号的代码,我在半年前写过类似的,后来发现有某种操作时出错,忘记了
那种操作,我发现数据表格有几百种变化,比如编辑数据、插入数据,编辑数据中途放弃,编辑数据中途放弃又分:用鼠标才作放弃,键盘另表格上滚放弃,外部放弃等等,总之只要
有一次计算错误,我都要重写去应付。
 
你都是在grid上处理,事件当然很多了。
为何不在tdatalink的activechange里面处理?
 
我以前好象有测试过tdatalink,当数据量大于5000左右时,DBGrid响应速度会变慢,尤其是在DBGrid上移动滚动条。
目前我使用的是TdxDBGrid+TStringGrid(TcxDBGrid太耗资源),前者主要使用在与编辑有关的操作界面,后者主要使用在一些特殊应用,如显示行号,企业生产系统中的作业工序手工排序等等。
等下下载楼主的测试一下。
 
怎么 http://kinneng.icpcn.com 打不开?
 
我已经不去想那个序号的问题,因为已经做的很好,是否完美则不肯定,纯粹依靠dataLink是做不到现在这种效果的,只要有一处出错,这个方法就要推倒,何况dataLink不止一处出错,我编写序号显示程序,经过上万次调试,网上网下和我自己想出来的方法都试过,而因为此一处出错而被放进回收站的文件有几千个,序号显示不是静态显示或者翻页滚动那么简单,还有各种操作过程,包括外部操作等等,某种特殊操作时,dataLink的不一定反应,这时候这个的方法就宣告失败,所以不但要控制datalink,还要控制更多的东西,我这表格的datalink是非常复杂的,包括排序、过滤和查找都由它来实现,它的80%是我自己开发的,20%是参考D2005的DBGrid。
 
老大,没搞错,我想运行一下你的demo,竟然还要我安装d7的bpl文件。咱可是一直在使用D6。
建议:在demo编译时,选择菜单project->Packages页面,不要选中“Build with runtime Packages”,进行完整编译,这样你的demo在哪里都可以独立运行了(当然是指Windows环境)
 
主页可以打开的,关于DBGrid在数据量大的时候会慢,实际是不可能的,因为DBGrid本身
并不保存数据,只有一个小缓冲来保存当前可见的数据,表格外面的内容是不保存的,问题
是滚动的时候,它要读数,数据量大的时候,会不会因为数据库变慢而影响到它,不过5000应该没问题,另外我的表格速度比DBGrid会慢些,特别全功能使用的时候,可以很花俏,但会很慢的,都是图片的问题,BDE比ADO快些,还有文本下拉框,不是很适合大数据量使用,虽然可以这样做,但开始时要稍等。
 
上百万的数据在dbgrid显示都没有问题,原因上面的说了。只和tdatalink的效率有关系,tdatalink又维护了一些东西来保证dbgrid显示正确的内容..........
 
to chnplzh
我的控件是D7版的,所以有D7才能玩。我还有几个目标没实现,所以我的控件还是测试性质。
 
to kinneng:
我指的不是你的bpl(对不起,没有源代码的bpl文件我一般不会去使用),而是你的demo,楼主可以重新在D7下面进行完整编译后再上传你的网页,以便没有D7运行库的DFW也可以测试。
以下是我自己的测试代码,测试环境:P4 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;
 
其实象我这种菜鸟写的源代码,应该没有哪个高手会看得懂,网上能够免费合法商业使用源代码的控件真没有几个,DBGridEh是要交费的,cxGrid是否这样,我象没有例外吧。
用滚动条快速移动,很不准确,滚动条消息会在排队时丢失。
我的表格,实在没有什么速度可言,除非什么功能也不用,全功能使用会特别慢。
 
想下一个,看来下不了,下次我还会来的
 
服务器供应商的问题,听说是服务器供应商的主机流量过大,电信拔线,所以服务器供应商决定搬离电信机房,并追究责任,我也没办法,我的第二个网站,已经做好,正在上传,估计要几天提供了。
 
主页服务器已经重开了,可以下载了
 

Similar threads

D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
D
回复
0
查看
664
DelphiTeacher的专栏
D
D
回复
0
查看
802
DelphiTeacher的专栏
D
D
回复
0
查看
747
DelphiTeacher的专栏
D
后退
顶部