现在很想知道几个很菜的问题。(200分)

  • 主题发起人 主题发起人 hwagin
  • 开始时间 开始时间
H

hwagin

Unregistered / Unconfirmed
GUEST, unregistred user!
一:
printer.begin
Doc ;
printer.Canvas.Font.Name :='宋体';
printer.Canvas.Font.Size :=10;
printer.Canvas.Font.Style:=[];
for j:=1 to 50do

for i:=1 to 100do

printer.Canvas.TextOut(i,j,'a');

printer.EndDoc ;
为什么没有出现这样的效果:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....
...
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa....
这种效果应如何实现?

二:
QuickRep.Print;
QuickRep.NewPage;
执行第二句时为何出错?如何改?

 
1、你的效果应该是一大堆a重叠在提起,好像一个大黑方块!
解决办法:for i:=0 to 50*15 step 15 ...for j:=0 to 100*15 step 15 ...
其中15是字距和行距
2、当quickRep的所有冬冬都生完之后在print
 
>1:
你每做一次循环, 就重新在画布上刷新一次,结果你得到的只是最后的一个'a'
 
是这样吗?哈哈,又学了一招!
 
to drawpharos
to 卷起千堆雪tyn
大虾,能否给出代码。
问题1 如果字体放大或缩小,怎样算出字距和行距?
问题2 我还是不解。
谢谢。
 
1、根据你自己的定义了,10号字字间距最少要为11才能把2个字分开,行距至少13才能在阅读时不串行
到底是多少你试几个数,看那个看上去舒服,或者试一个数,其它的按比例缩放
2,我没用过QuickReport,具体细节不太清楚!听听其它DFW的高见!
 
问题1 只是这样:
aaaaaa
 
我也遇到了同样的问题,很想知道为什么。
 
printer.begin
Doc ;
printer.Canvas.Font.Name :='宋体';
printer.Canvas.Font.Size :=10;
printer.Canvas.Font.Style:=[];
for j:=1 to 50do

for i:=1 to 100do

printer.Canvas.TextOut(i,j,'a');//改为 printer.Canvas.TextOut(i*printer.Canvas.Textwidth+2,j*printer.canvas.textheight,'a')

printer.EndDoc ;
 
对,要一次性完成任务,否则的话,将重绘时就没了
 
printer.begin
Doc ;
printer.Canvas.Font.Name :='宋体';
printer.Canvas.Font.Size :=10;
printer.Canvas.Font.Style:=[];
for j:=1 to 50do

for i:=1 to 100do

printer.Canvas.TextOut(i*printer.Canvas.Textwidth+2,j*printer.canvas.textheight,'a')
printer.EndDoc ;

 
其实大家都已经说的很清楚了,
第一个问题的原因是打印机的分辨率和显示器的不同,所以需要改变
第二个问题是,QuickRep.Print时把打印任务给了打印机,然后开始执行
QuickRep.NewPage,打印机没有打印完毕,执行QuickRep.NewPage是要报错了。
如果你的一次打印有好多页,是不用newpage的
如果不是一次打印,enddoc之后再newpage吧
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
612
import
I
I
回复
0
查看
763
import
I
I
回复
0
查看
843
import
I
后退
顶部