如何让数据库中的文字在TDBmemo里换行显示的时候隔行显示?——————全给了!!!!(150分)

  • 主题发起人 主题发起人 dumb_boy
  • 开始时间 开始时间
D

dumb_boy

Unregistered / Unconfirmed
GUEST, unregistred user!
--------------以前问过,不过没有实现:----------------
如何让数据库中的文字在TDBmemo里换行显示的时候隔行显示?
比如这样:数据库里面有一段文字:1234567890
由于memo的宽度大小只能够单行显示:12345
另外一行显示:67890
结果就是:
12345
67890
我要求的是显示的时候成这样的效果:
12345
(换行)
67890
也就是实现了memo里面的文字排版。
请给出具体的代码,多谢!
 
这个问题应该比较简单,你自己想想就可以了呀,我没有时间呀。
 
问了好多人了,可是都没有好的解决办法,这个问题看来真的是不简单才是!
我的想法是这样:首先判断调从数据库用进来的数据长度是不是大于demo的宽度,
如果是,则自动加入#13+#10赋给下一行,依次类推。
但是不知道具体的代码怎么写,多谢!
 
memo1.text:=table1.fieldbyname('xx').asstring;
for i:=memo1.Lines.Countdo
wnto 0 do
memo1.Lines.Insert(i-1,#13#10);
 
还是不太明白,可以麻烦代劳做一个例子么?
我的邮箱:realetong@hotmail.com
 
kenny.hu,已经说得很清楚了呀
 
memo1.text:=table1.fieldbyname('xx').asstring;
j := 1 ;
for i:=memo1.Lines.Countdo
wnto 0 do
begin
memo1.Lines.Insert(i-j,#13#10);
inc(j,2) ;
end ;
 
kenny.hu的代码首先就在文字调入的时候加入了一个换行符,可是第一行不要换行的,
应该怎么改?如果我要自定义每行显示的字数,比如说是每一行显示30个字,然后换行。
又应该怎么做?
 
var
s,ss:string;
i,ii:integer;
begin
ss:=table1.fieldbyname('xx').asstring;
ii:=(length(ss) div 30)-1;
s:='';
for i:=0 to iido
s:=s+copy(ss,(i*30)+1,30)+#13#10;
memo1.text:=s;
end;

 
kenny.hu果然厉害,还请留下QQ如何?
 
后退
顶部