INI文件记载要打印的信息, 格式:
[1]
caption=abcd
font=宋体
size=14
left=2
top=2.5
[2]
caption=中国人
font=楷体_GB2312
size=18
left=6
top=4代码如下:(其中strList存储INI文件各节的名称)
Printer.BeginDoc;
for i := 0 to strList.Count-1 do
begin
SectionName := strList.Strings[i];
sCaption := F.ReadString(SectionName, 'caption', 'error');
sFont := F.ReadString(SectionName, 'font', 'error');
sSize := F.ReadString(SectionName, 'size', 'error');
sLeft := F.ReadString(SectionName, 'left', 'error');
sTop := F.ReadString(SectionName, 'top', 'error');
try
printer.Canvas.Font.Name := sFont;
printer.Canvas.font.Size := strtoint(sSize);
printer.canvas.textout(trunc(strtofloat(sLeft)/2.54*fx),
trunc(strtofloat(sTop)/2.54*fx), sCaption);
except
Printer.Abort; // 出错情况下中止打印
raise;
end;
end;
Printer.EndDoc;但是执行打印的时候却没有反应,如果把Printer.BeginDoc和Printer.Abort放在try语句中,则会打印出多篇纸(一节一张),请问怎样才能让for循环中的内容在一张纸上打印出来?
[1]
caption=abcd
font=宋体
size=14
left=2
top=2.5
[2]
caption=中国人
font=楷体_GB2312
size=18
left=6
top=4代码如下:(其中strList存储INI文件各节的名称)
Printer.BeginDoc;
for i := 0 to strList.Count-1 do
begin
SectionName := strList.Strings[i];
sCaption := F.ReadString(SectionName, 'caption', 'error');
sFont := F.ReadString(SectionName, 'font', 'error');
sSize := F.ReadString(SectionName, 'size', 'error');
sLeft := F.ReadString(SectionName, 'left', 'error');
sTop := F.ReadString(SectionName, 'top', 'error');
try
printer.Canvas.Font.Name := sFont;
printer.Canvas.font.Size := strtoint(sSize);
printer.canvas.textout(trunc(strtofloat(sLeft)/2.54*fx),
trunc(strtofloat(sTop)/2.54*fx), sCaption);
except
Printer.Abort; // 出错情况下中止打印
raise;
end;
end;
Printer.EndDoc;但是执行打印的时候却没有反应,如果把Printer.BeginDoc和Printer.Abort放在try语句中,则会打印出多篇纸(一节一张),请问怎样才能让for循环中的内容在一张纸上打印出来?
解决方案 »
- 语法解释
- 如何指定某用户写入注册表?
- 如何使文字在quickreport中居中
- delphi支持soap的端口绑定操作类型有没有document类型的??
- 物流库存软件开发外包
- 两边的局域网都是通过路由接入internet,怎样实现点对点传送信息和文件的方法(哪位高手,大虾帮帮忙!急!!!)
- D2012准备出来了没。
- 旧版CSDN操作简单性令人怀念,我花两天时间把它模仿出来了,如果你怀念她,就来看看吧,http://www.gxlsweb.com/eBBS/
- paradox 数据提交问题
- 用Query控件的INSERT INTO 方式如何实现事务控制?
- win2003为什么SQL Server无法连接
- 请问在win2000系统下,如何将应用程序注册为一个系统服务?
try
for i := 0 to strList.Count-1 do
begin
SectionName := strList.Strings[i];
sCaption := F.ReadString(SectionName, 'caption', 'error');
sFont := F.ReadString(SectionName, 'font', 'error');
sSize := F.ReadString(SectionName, 'size', 'error');
sLeft := F.ReadString(SectionName, 'left', 'error');
sTop := F.ReadString(SectionName, 'top', 'error');
printer.Canvas.Font.Name := sFont;
printer.Canvas.font.Size := strtoint(sSize);
printer.canvas.textout(trunc(strtofloat(sLeft)/2.54*fx),
trunc(strtofloat(sTop)/2.54*fx), sCaption);
end;
except
Printer.Abort; // 出错情况下中止打印
raise;
end;
Printer.EndDoc;把循环放在Try里面去