打印问题?
TQuickReport2有两个公共变量:
source: string;
strs:tstringlist;
在打印前strs:=tstringlist.create;
在打印后 strs.free;
从文件中获取一行字符串;并分割它。如下:
procedure TQuickReport2.QuickRepNeedData(Sender: TObject;
var MoreData: Boolean);
begin
if not eof(infile) then
begin
readln(infile, source);
ExtractStrings([' '],[],PChar(source),strs);//按照空格分
MoreData:=true;
end
else
MoreData:=false;
end;
打印的结果怎么只是文件的第一行,不知怎么回事,请多多指教~~
问题点数:20、回复次数:3Top
1 楼Delphinus(西瓜宝贝)回复于 2005-01-03 18:56:51 得分 0
if not eof(infile) then
begin
readln(infile, source);
ExtractStrings([' '],[],PChar(source),strs);//按照空格分
MoreData:=true;
//这里再加一句转入下一行
end
else
MoreData:=false;Top
2 楼lbd8848(lbd)回复于 2005-01-04 08:35:58 得分 20
if not eof(infile) then
是不是该为
while not eof(infile)
begin
....
//读取指针下跳一下
end;Top
3 楼qhxhit(游侠)回复于 2005-01-04 10:36:42 得分 0
按照 lbd8848(lbd)方法 调试了一下,可以把数据全部读出,Delphinus(西瓜宝贝) 方法不对,它不是一个循环。而且readln本身把指针跳到下一行。
现我要把strs显示在
QRLabel2(有五个Qrlabel)上,我是这么写的:
procedure TQuickReport2.QRLabel2Print(sender: TObject; var Value: String);
var
i,k:integer;
begin
for i:=0 to strs.count-1 do begin
k:=(i mod 5);
case (Sender as TQrlabel).Tag of
0: if k=0 then value := strs[i];
1: if k=1 then value := strs[i];
2: if k=2 then value := strs[i];
3: if k=3 then value := strs[i];
4: if k=4 then value := strs[i];
end;
end;
结果预览时什么也没有!!不知问题出在哪了?
Top




