【发布时间】:2012-05-10 20:43:35
【问题描述】:
我有一个使用 ClientDataSets 和本地文件存储的应用程序。一些信息显示在数据库网格中,我发现它被截断了——显示了字符串的前 500 个字符左右,但基础字段需要更长。所以我回到我的代码并增加了底层 FieldDef 的大小以及它们的显示宽度。我还创建了一个新数据集(在设计时)。最后,我运行了应用程序,并创建了一个新数据库。然而,只显示了大约 500 个字符。
我应该在哪里查看限制我的字段长度的因素?
【问题讨论】:
-
字段大小(字符串字段类型的最大字符数)存储在
TField.Size中,所以首先建议你检查这个值。 -
您希望如何在 DBGrid 中显示 500 个或更多字符? (您能说主要滚动问题吗?我看到您的用户未来会出现重复性压力伤害。
)执行此操作的典型方法是显示部分文本,并允许用户双击阅读其余部分;当他们这样做时,您会打开一个带有 TMemo 或 TRichEdit 或其他控件的辅助窗口,以可读格式显示整个文本。 -
@Ken,对您的评论 +1(我希望在答案中看到这一点 ;-)。我讨厌网格列试图从当前位置自动调整超过一页滚动的大小。不手动拖动滚动条就无法阅读内容,因此我更喜欢提示窗口或通过双击显示其余内容。
-
@Ken,乍一看似乎很奇怪,但网格只有两列,文本是 9 或 10 pt。很少编辑长 TStringField 条目。 UI 的视觉外观类似于文字处理器中的表格。我在csulb.edu/~acolburn/screenshot.doc 发布了部分截图
-
@AlC,TDBGrid 对你的 UI 来说是个糟糕的选择(就像你选择 Word 文档来发布示例屏幕截图一样
)。您可能会查看 TVirtualStringTree,它具有您似乎需要的功能,或者是TDBGrid的替代品,如ExpressQuantumGrid。TDBGrid对此的支持并不是开箱即用的。
标签: delphi tclientdataset