cxGrid5.0显示rtf格式,出现一点小麻烦,200分求解决方案。

feng93017 2006-04-13 04:01:38
基于一个以前的系统开发(已经有数据在里面),我想用cxGrid的cxGridDBCardView显示内容。数据库中某字段“详细内容”是ntext格式,存放的内容是rtf格式的数据。在刚开始开发的时候,我用了D6+cxGrid4.0,可惜它不支持rtf格式,显示出来的是一串处理后的字符串。后来发现,cxGrid5.0支持rtf格式,于是赶紧升级控件。将“详细内容”字段 【properties】 属性设置为【RichEdit】,显示正常。
但是新的问题又出现了,由于“详细内容”字段中的内容特别多,所以一行显示不下,需要多行显示。于是找到 cxGridDBCardView -> OptionsView -> CellAutoHeight 将其设为true,结果发现其他的字段都能正常自动根据内容调整高度。只有“详细内容”字段因为【properties】 属性设置为【RichEdit】后,就不能自动调整高度了,还是只有一行。特别遗憾的是,我把【CellHints】设置为【true】后,它的Hint功能也没有。
请教,我怎么能将“详细内容”完全显示给用户呢?

如果能回答当前鼠标点击了cxGridDBCardViewCell的哪一个坐标(哪一行,哪一列),也有分。
...全文
319 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
Devillyd 2006-05-14
  • 打赏
  • 举报
回复
为什么不用richview
dejoy 2006-05-14
  • 打赏
  • 举报
回复
我也遇到了这个问题,varchar类型的可以自动调整高度,可是text类型的却是不行,不知如何是好
feng93017 2006-05-06
  • 打赏
  • 举报
回复
yerly(yerly)

waiting for u。
bbshao123 2006-05-02
  • 打赏
  • 举报
回复
才学没几天,所以帮不了你!帮你UPUPUP~~~
12rain 2006-05-02
  • 打赏
  • 举报
回复
实现应该是可以实现的,我有做过类似的处理,
一种方法是自己更改TcxCustomEdit.InternalCanResize过程
另一种方法是自己声明一个新的RichEdit类(从它的RichEdit继承),重载CanAutoSize方法
前提是你要对cxGrid内部的一些实现比较熟悉。

如果能回答当前鼠标点击了cxGridDBCardViewCell的哪一个坐标(哪一行,哪一列),也有分。
TcxGridCardView(Sender).DataController.FocusedRecordIndex
或者
MouseDown
var
AHitTest: TcxCustomGridHitTest;
AViewInfo: TcxCustomGridCellViewInfo;
begin
AHitTest := TcxGridCardView(Sender).GetHitTest(X, Y);
if (AHitTest <> nil) and (AHitTest.HitTestCode = htcell) then
begin
AViewInfo := AHitTest.ViewInfo;
if AViewInfo is TcxGridTableCellViewInfo then
TcxGridTableCellViewInfo(AViewInfo).GridRecord...//再根据GridRecord取RecordIndex
end;
end;

至于哪一列,可根据
CardViewController.FocusedItem去取它的Index
feng93017 2006-05-02
  • 打赏
  • 举报
回复
过几天再结贴。

五一期间UP的兄弟姐妹,多多给分。
yerly 2006-05-02
  • 打赏
  • 举报
回复
sign ,,今天没时间,明天给你回答。
hxshaou 2006-04-24
  • 打赏
  • 举报
回复
cxgrid倒用过,但没用过rtf格式的。
YFLK 2006-04-24
  • 打赏
  • 举报
回复
将rtf格式转成其它格式不可以吗?
Rubi 2006-04-23
  • 打赏
  • 举报
回复
还是不太懂你的意思

CSDN论坛浏览器:http://CoolSlob.ys168.com/
cuteant 2006-04-23
  • 打赏
  • 举报
回复
关于获取鼠标点击的是哪一行哪一列的问题,可以用下面的过程:
TStringGrid(cxGrid1).MouseToCell(x, y, ACol, ARow);//将鼠标的坐标X,Y转换为Col和Row
柯本 2006-04-23
  • 打赏
  • 举报
回复
没用过cxGrid,只能帮你UP一下了
cuteant 2006-04-23
  • 打赏
  • 举报
回复
feng93017 2006-04-21
  • 打赏
  • 举报
回复
五一之前结贴,UP有分。都来吧.
feng93017 2006-04-14
  • 打赏
  • 举报
回复
TO:GARNETT2183(KingWolves (http://kevin-lu.blogspot.com))
没有找到你说的这个属性,能不能说清楚一点。或者是你没有看清楚我的问题?

谢谢。
feng93017 2006-04-14
  • 打赏
  • 举报
回复
奇怪了,CSDN上的Delphi牛人都到哪儿去了?

都留下点足迹吧?
feng93017 2006-04-14
  • 打赏
  • 举报
回复
TO:GARNETT2183(KingWolves (http://kevin-lu.blogspot.com))

老兄,你可能没有看清楚我的题目吧?我说的可是cxGridDBCardView而不是cxGridDBTableView。

现在的问题是不能显示rtf格式,而是这个Cell它不能多行显示,所以内容不能完全显示。而且没有Hint属性,就算在cxGrid里面设置了Hint为true,其他的Cell的Hint正常,到了这个它这就不行了。不知道大家明白了我的意思没有?
GARNETT2183 2006-04-14
  • 打赏
  • 举报
回复
TO: feng93017(Edge)
//////////////
选择你的TableView,之后有个Preview的属性,你展开后有一个Column的属性,你把这个属性填你要显示RFT格式的那个字段就可以了..
feng93017 2006-04-14
  • 打赏
  • 举报
回复
zxkid(没有人会像我这样...)

OK.你可能误解了我的意思。当内容很多的情况下,我们可以通过Hint查看详细内容。就像我上面说的那样,不巧的是,Hint属性这时候也出问题了。

其实直接一个DBRichEdit就可以搞定我所说的这个问题,只是,我现在处于界面整体风格的考虑,希望找到更好的解决办法。

欢迎大家参与讨论。如果没有一个很好的建议,我打算散分了。
zxkid 2006-04-14
  • 打赏
  • 举报
回复
请教,我怎么能将“详细内容”完全显示给用户呢?
=============================================

如果用户输入1000行内容的话,怎么可能"完全显示"呢?
加载更多回复(4)

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧