delphi打印有关问题

delphi打印问题
如何用delphi实现一个类似超市小票打印的程序?要详细的、可用的代码,或者详细的说明或教程。

------解决方案--------------------
procedure TMainForm.PrintSyt;
//windows打印
procedure windowsPrint;
var
_nPrint,i,j:Integer;
begin
with Printer do
begin
_nPrint := 12;
BeginDoc;
Canvas.Font.Name:= '宋体 ';
Canvas.Font.Size:=9;
J := 4;
for i:=0 to printBuffer.Count-1 do
begin
Canvas.TextOut(0,J,printBuffer[i]);
Inc(J,_nPrint);
end;
for i:=0 to Global.printbline-1 do
begin
Canvas.TextOut(0,J, ' ');
Inc(J,_nPrint);
end;
EndDoc;
end;
end;
//直接端口打印
procedure printToPort;
var
F:TextFile;
i:Integer;
begin
with Printer do
begin
AssignFile(F,Global.printforfile);
ReWrite(F);
for i:=0 to printBuffer.Count-1 do
Writeln(F,printBuffer[i]);
for i:=0 to Global.printbline-1 do
Writeln(F, ' ');

//Writeln(F,Chr(27)+ 'p '+Chr(0)+Chr(60)+Chr(255)); 打开钱箱
CloseFile(F);
end;
end;
begin
//建立打印文件
createPrintText;
case StrToInt(Global.printcredence) of
1,3:printToPort;
2:windowsPrint;
end;
end;