想在老婆面前表现一下,却被一个小小问题难住了,求助!(100分)

  • 主题发起人 主题发起人 linkman
  • 开始时间 开始时间
L

linkman

Unregistered / Unconfirmed
GUEST, unregistred user!
近来无事,给老婆编一个文档编目系统.在调查了许多Grid组件后,我选择了Ehlib组件.可是有一个问题我一直解决不了:题名字段短的一行就能放下,长的需要6行,可是Ehlib没有根据内容换行并调整行高的功能.如有朋友能帮我解决此问题,我一定将此软件的源码公开,决不食言!
 
不要建议我用DevExpress QuantumGrid,数据记录总共有50000多条.
 
你可以用一个MEMo控件捆绑在DbGrideh上.
 
如何实现?请指教!
另,我看到论坛一个帖子,说可以在画行时编程自定义行高的,不知如何实现.
 
你是需要自动折行功能,还是固定设置一个行高?
 
我需要自动折行功能,自动调整不同行的行高.
 
重写TCustomGrid.DrawCell过程,用Canvas.TextRect方法把单元格中的内容画上去。
 
to jifee : 不行
 
在TCustomGrid.DrawCell过程里设定行高RowHeight。
用TCanvas.TextExtent方法测试单元格的大小。
TCanvas.TextRect中:
AlignmentFlags = (
AlignmentFlags_AlignLeft = 1 { $1 },
AlignmentFlags_AlignRight = 2 { $2 },
AlignmentFlags_AlignHCenter = 4 { $4 },
AlignmentFlags_AlignTop = 8 { $8 },
AlignmentFlags_AlignBottom = 16 { $10 },
AlignmentFlags_AlignVCenter = 32 { $20 },
AlignmentFlags_AlignCenter = 36 { $24 },
AlignmentFlags_SingleLine = 64 { $40 },
AlignmentFlags_DontClip = 128 { $80 },
AlignmentFlags_ExpandTabs = 256 { $100 },
AlignmentFlags_ShowPrefix = 512 { $200 },
AlignmentFlags_WordBreak = 1024 { $400 },
AlignmentFlags_DontPrint = 4096 { $1000 });
 
我有一个组件,自己写的,命名为:TadvGrid,直接由 TCustomControl 派生,
参考了 TCustomGrid, TDBGrid 的许多手法,除了 单元内容存储及数据敏感支持
外,多选,单元合并,多编辑功能,行选择状态可编辑,回行处理等等,可以说远
优于 Delphi 目前的所有的网格。

===> 单元内容的存储是有意没有添加的功能,因为我不想在后台保存一个数据结构表,
而前台网格又保存一个备份,太浪费了,所有显示都根据你的需要即时变动,最多就
是:InvalidateGrid ,刷一下就可以了。这个网格几乎所有的功能都采用可控的方式。

说明:这个网格目前还有一个缺陷,就是在单元合并时的行选择,出现选择域--> 唉,
我不说,想必你们也知道。有意的大侠可以跟我要源码,只有二个条件 ========>

1、你自己有能力编制高级组件;
2、修改后的源码或者变动的说明能够无保留地再次交流。
 
to ddev:
我应该是有能力编制高级组件,也愿意修改后的源码或者变动的说明能够无保留地再次交流,可我没有时间干这事,我只想为老婆编一个小程序。
如果您的组件很好用,我很乐意用,我也愿意公开我的源代码。我的EMAIL:linkman2002@sina.com.cn
 
to jifee,我问题的关键是:如何自动依据每行的内容调整不同行的行高。
 
实在不行,换个TopGrid组件.请问,在topgrid中如何实现此功能?好象可以实现的。
 
可以双击调出新的窗体或空间。用吊文件的方法把数据内容显现出来!
 
to :hang_yz6666:不想这样实现。
 
在老婆面前有什么好表现的。
又不是在人家老婆面前。
 
问题麻烦了。
我下午做了几个实验,证实:
1、Ehlib组件的没有保存每一行或每一个CELL高度的属性,改动起来太麻烦;
2、TopGrid组件有保存每一行或每一个CELL高度的属性,但不知为什么,当捆绑数据时,程序故意不支持,不知什么为什么,按常理,当Unbound模式可以设置每一行的行高时,Bound模式设置应该不是很困难的,好好看程序再说;
3、DevExpress QuantumGrid在数据纪录大于5000时变得非常慢,完全不想用它!;
4、Execel、Xlgrid支持不同行高,却不支持捆绑;
5、暂时还没有找到其它组件能满足要求。
有没有人能解决此问题?
我看最大的可能是:改topgrid了,不知对不对?
 
蛐蛐, 你可真幽默呀。哈哈
 
后退
顶部