可以考虑加空格.但是不知用什么事件来触发比较合适,:),菜鸟思维. 我是这样做的: function CountSpc(strtext:string):integer; begin result:=length(strtext) div 30; //每隔n个字符插一个空格 end; // 文本框内加空格函数 function AddSpace(var Strtext:string;IntCount:integer):String; var x : integer; begin for x:=1 to IntCount do insert(#32,strtext,30*x); end; procedure TCatagReport.Query1AfterOpen(DataSet: TDataSet); var Tmp_field:string; x,y:integer; begin for y:=0 to catagreport.Query1.RecordCount-1 do begin tmp_field:=catagreport.Query1.FieldByName('文件标题或事由').AsString ; x:=CountSpc(tmp_field); AddSpace(tmp_field,x); catagreport.Query1.Next; end;end;单步跟踪,事件确实触发了,但是报表显示still as before! 我有试验过数据库里字段值保持以上格式能够自动换行. 还有,同时会引发第二个问题 在insert 函数中,如果insert的位置>30的话,会插入乱码! 一波还未平息,一波又来侵袭.......
书上说将其autostretch 属性设为True即可实现自动拉绅,但实际并不总是如此,他只会在字符是半角时才会转换,头痛得很!
我是这样做的:
function CountSpc(strtext:string):integer;
begin
result:=length(strtext) div 30; //每隔n个字符插一个空格
end;
// 文本框内加空格函数
function AddSpace(var Strtext:string;IntCount:integer):String;
var x : integer;
begin
for x:=1 to IntCount do
insert(#32,strtext,30*x);
end;
procedure TCatagReport.Query1AfterOpen(DataSet: TDataSet);
var Tmp_field:string;
x,y:integer;
begin
for y:=0 to catagreport.Query1.RecordCount-1 do
begin
tmp_field:=catagreport.Query1.FieldByName('文件标题或事由').AsString ;
x:=CountSpc(tmp_field);
AddSpace(tmp_field,x);
catagreport.Query1.Next;
end;end;单步跟踪,事件确实触发了,但是报表显示still as before!
我有试验过数据库里字段值保持以上格式能够自动换行.
还有,同时会引发第二个问题
在insert 函数中,如果insert的位置>30的话,会插入乱码!
一波还未平息,一波又来侵袭.......