如何实现StringGrid中单元格中文本的自动换行(200分)

  • 主题发起人 主题发起人 w2qh
  • 开始时间 开始时间
W

w2qh

Unregistered / Unconfirmed
GUEST, unregistred user!
如何实现StringGrid中单元格的自动换行:
我准备用StringGrid做一个财务软件的凭证录入,采用StringGrid显示会计分录的
摘要和科目,由于摘要可能比较长,所以要求文本换行。
 
我的思路如下:
在事件中判断长度,如果长度超过你所规定的长度,则换行。
换行用这个
比如:
if 长度>10 then
xxx.text := xxx.text + #13;//换行,这是最主要的了。


 
保存数据不会保存#13,所以在再次显示时如何确定插入的#13的位置呢
 
procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
//showscrollbar(dbgrid1.handle,sb_both,false);
if length(Field.AsString)>20 then
ShowMessage('换行');
end;
 
还是一样,既然已经有规定的长度,那么从数据库中提取出来的时候也是一样的把数据每隔一定的长度
加上#13就可以显示了。呵呵。

给分吧~:)
 
to xzh200
跟小弟抢分吗?
呵呵~
 
我的意思是:
保存数据不会保存#13,关键是在再次显示时如何确定插入的#13的位置呢:
比如非常长的字符串,要分成6行,我如何确定该插入#13的位置,是一个
一个字符长度与Cell的长度比较马?,太麻烦了
 
一个中文两个字符长度,一个英文一个字符长度。
你说的这样也好办呀。
首先从数据库中取出数据,求出数据的长度,然后分成六分,然后没段后面加个#13不就可以了。
 
不是非常理想,也接受吧,
我看老兄是重庆工作的,我可是从重庆被赶出来的,不知道你的Delphi DFW如何,
大家的水平还可以吗?,有机会也想凑个热闹
 
多人接受答案了。
 
换一个控件啊
 
后退
顶部