打印字符型字段如何能控制他在指定的方框区域内打印 ,....(200分)

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

wtb

Unregistered / Unconfirmed
GUEST, unregistred user!
打印字符型字段如何能控制他在指定的方框区域内打印 ,....
可以自动换行,打不下的字符忽略
最好还能在方框内上下自动居中?
谢谢 急
 
1)一个很省事的办法,加一个RichText控件,将要打印的东西送入RichText中,
让RichText替你排版,再读取出来即可。
2)也可设置WordWrap,AutoSize等属性。
 
兄弟初学,能具体点么!谢谢
 
如何设置WordWrap,AutoSize 等 属性。
 
参照如下代码(N年前写的,比较烂)
在ONPRINT里调用
function TForm_LineOperationNote.GetOperationStep(const Ticket_id : integer): string;
var
Query: string;
Step_no: integer;
Step_Desc: widestring;
s: widestring;
s1,s2: widestring;
begin
with CDS2 do
begin
Close;
Query:='select * from DB2USER.OPTIC_STEP where TICKET_ID='+inttostr(Ticket_id)+' order by STEP_NO';
Provider.DataRequest(Query);
Open;
First;
while not eof do
begin
Step_no:=fieldbyname('STEP_NO').asinteger;
Step_Desc:=fieldbyname('STEP_DESC').asstring;
s1:= Step_Desc;
if Length(s1)<= 55 then
begin
s:=s+inttostr(Step_no)+' '+Step_Desc+chr(13)+chr(10)+
'-------------------------------------------------------------------------------------------------------------------'
+chr(13)+chr(10);
end;
if Length(s1)>55 then
begin
s1:=copy(Step_Desc,1,55);
s2:=copy(Step_Desc,56,Length(Step_Desc)-55);
s:=s+inttostr(Step_no)+' '+s1+chr(13)+chr(10)+
'-------------------------------------------------------------------------------------------------------------------'
+chr(13)+chr(10)
+' '+s2+chr(13)+chr(10)+
'-------------------------------------------------------------------------------------------------------------------'
+chr(13)+chr(10);
end;
next;
end;
close;
end;
Result := s;
end;
 
太复杂了!

2)也可设置WordWrap,AutoSize等属性。?

 
多人接受答案了。
 
后退
顶部