ShowMessage(strs.Values[strs.Names[i]]); ShowMessage(strs.ValueFromIndex[i]); end; end;
通过这个例子不难看出: 这个时候strs中的内容是: 0=aaa 1=bbb 2=ccc 3=ddd
而Names中则是: 0 1 2 3
在Values中则是: aaa bbb ccc ddd
这几个属性用来处理ini文件是非常好用的。 下面讲诉delphi控制打印机的一个例子
一种方法是直接写TextFile 文件
另外一种是利用delphi 的控件生成一个包表进行打印 前者多用于比较广泛 现先讲诉第一种 第一步:定义变量 var F:TextFile; 编写的程序如下: Assignfile(f,'LPT1'); rewrite(f);
Writeln(F,chr($1b) + chr($40)); {初始化打印机}
Writeln(F,string)// 打印string(如果在string两边加上’ string’,则打印的是string,如果直接是string,则打印的是string变量中的内容)。
Writeln(F,chr($1b) + chr($61) + '1')//居中打印 Writeln(F,chr($1b) + chr($61) + '0'); //取消居中打印 CloseFile(F); // 关闭打印机,结束打印
Writeln(F,chr($b)+chr(27)+'J'+chr(140)); // 向前进纸 比如我要在POS58小票机上打印“delphi资料”则如下所示 新建一个程序为form1 添加一个Button按钮 双击Button按钮编写代码如下
procedure TForm1.Button1Click(Sender: TObject);
var
F:TextFile; Begin
AssignFile(F,'LPT1'); Rewrite(F);
Writeln(F,chr($1b) + chr($61) + '1'); Writeln(F,' delphi资料');
Writeln(F,chr($b)+chr(27)+'J'+chr(140));
Writeln(F,'打印时间:' + datetimetostr(Now));//打印当前时间 Writeln(F,chr($1d)+ 'V' + chr(66) + chr(0)); //切纸 closefile(F);//结束打印
点击运行程序 单击Button1 则会在打印机上打印“delphi资料”
一般情况下我们所遇到的打印要求我们从一个表中筛选出内容进行打印 这样的情况下我们就需要打印string变量中所包含的内容 这里以超市为例 超市里面每扫描一次条形码,就要生成一条记录, 同时即时的向TextFile写入一条记录
先讲一下思路:
第一步:从表中筛选出所买商品的记录;
第二步:定义一个Tstrings,在点击按钮时创建一个strs:=TStringList.Create;
第三步:把记录写入到strs.CommaText 第四步:将上面打印部分的string替换掉 具体操作为: …….. ….. Var
Form2: TForm2; sph:string; spmc:string; spjg:string; sj:integer; recount:integer;
sph1,sph2,spmc1,spmc2:string; strs:Tstrings; …….
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char); var
recount:integer; begin
strs:=TStringList.Create; if (key=#13) then
begin
DataModule1.ADOQuery4.SQL.Clear; DataModule1.ADOQuery3.SQL.Clear; DataModule1.ADOQuery1.SQL.Clear;
DataModule1.ADOQuery1.SQL.Add('select * from 表1 where 条形码='''+Edit1.text+''''); DataModule1.ADOQuery1.Open; sph1:='商品号:' ;
sph2:=sph1+DataModule1.ADOQuery1.fieldbyname('条形码').asstring;
spmc1:='商品名称:' ;
spmc2:=spmc1+DataModule1.ADOQuery1.fieldbyname('商品名称').asstring;
strs.CommaText:=strs.CommaText+','+sph2+','+spmc2; …..
//程序部分的意思是将Edit1.text对应的商品筛选出来 这部分程序执行完后CommaText的内容变为
商品号:条形码,商品名称:******,商品号:条形码,商品名称:********
中间的分隔符为“,”当打印的时候对CommaText 中进行相应的操作
修改….Writeln(F,' delphi资料')….;程序为: