unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ComCtrls, SPComm, VCL.printers;
type
TForm1 = class(TForm)
Comm1: TComm;
Comm2: TComm;
Comm3: TComm;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Label2: TLabel;
Edit2: TEdit;
Button3: TButton;
Label3: TLabel;
Edit3: TEdit;
Button4: TButton;
Label4: TLabel;
Edit4: TEdit;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
ListBox1: TListBox;
Button10: TButton;
Button11: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure ListBox1DblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure openport(PrinterName:PAnsiChar);stdcall;far; external 'tsclib.dll';
procedure closeport; external 'tsclib.dll';
procedure sendcommand(Command:PAnsiChar);stdcall;far;external 'tsclib.dll';
procedure setup(LabelWidth, LabelHeight, Speed, Density, Sensor, Vertical, Offset:PAnsiChar);stdcall; far; external 'tsclib.dll';
procedure downloadpcx(Filename,ImageName:PAnsiChar);stdcall;far;external 'tsclib.dll';
procedure barcode(X, Y, CodeType, Height, Readable, Rotation, Narrow, Wide, Code :PAnsiChar); stdcall; far; external 'tsclib.dll';
procedure printerfont(X, Y, FontName, Rotation, Xmul, Ymul, Content:PAnsiChar);stdcall;far; external 'tsclib.dll';
procedure clearbuffer; external 'tsclib.dll';
procedure printlabel(NumberOfSet, NumberOfCopoy:PAnsiChar);stdcall; far;external 'tsclib.dll';
procedure formfeed;external 'tsclib.dll';
procedure nobackfeed; external 'tsclib.dll';
procedure windowsfont (X, Y, FontHeight, Rotation, FontStyle, FontUnderline : integer; FaceName, TextContect:PAnsiChar);stdcall;far;external 'tsclib.dll';
procedure TForm1.Button10Click(Sender: TObject);
begin
listbox1.clear;
listbox1.items.assign(Printer.printers );
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.Enabled := True;
Comm1.CommName := Edit1.Text;
Try
Comm1.StartComm;
Button1.Enabled := False;
Except
ShowMessage('開啟ComPort錯誤');
End;
end;
procedure TForm1.Button2Click(Sender: TObject);
var s:Ansistring;
begin
if Button1.Enabled then
Button1.Click;
s := Chr(27) + Chr(99) + Chr(48) + Chr(2);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := 'QA00000001' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '2013-04-08 11:30' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '店名:壽比南山健康餐飲 站號:01' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '單A2013040800001 頁1' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '桌號:01' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '健康蔬食鍋x1 300' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '小計: 300' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '服務費: 0' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '合計: 300' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '現金:1000' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '找零: 700' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '收銀員:林壽山' + Chr(10);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := Chr(12);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := Chr(27) + Chr(99) + Chr(48) + Chr(3);
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := Chr(27) + Chr(64) ;
Comm1.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Button3.Enabled := True;
Comm2.CommName := Edit2.Text;
Try
Comm2.StartComm;
Button3.Enabled := False;
Except
ShowMessage('開啟ComPort錯誤');
End;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Button4.Enabled := True;
Comm3.CommName := Edit3.Text;
Try
Comm3.StartComm;
Button4.Enabled := False;
Except
ShowMessage('開啟ComPort錯誤');
End;
end;
procedure TForm1.Button5Click(Sender: TObject);
var s:Ansistring;
begin
// 彈出錢箱
{
#1B#40#1B#70#0#32#C8
}
if Button3.Enabled then
Button3.Click;
s := chr(27) + chr(64)+ chr(27) + chr(112) + chr(0) + chr(50) + chr(200) ;
Comm2.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
end;
procedure TForm1.Button6Click(Sender: TObject);
var s:Ansistring;
begin
//打印機 啟動成功!
{
#1B#40
2014/04/08 13:40:35#0A#0d
#1B#64#02
#1D#21#11
印表機:1-啟動成功#0A
#1D#21#00
#1B#64#05
#1D#56#00
}
if Button3.Enabled then
Button3.Click;
// 初始化 #1B#40
s:= chr(27) + chr(64);
Comm2.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s:= '2014/04/08 13:40:35'+ chr(10)+ chr(13) ; //#0A#0d
Comm2.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s:= chr(27) + chr(100) + chr(2); //#1B#64#02
Comm2.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s:= chr(29) + chr(33) + chr(17) ; //#1D#21#11
Comm2.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s:= '印表機:1-啟動成功'+ chr(10); //#0A
Comm2.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s:= chr(29) + chr(33) + chr(0) ; //#1D#21#00
Comm2.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s:= chr(27) + chr(100) + chr(5); //#1B#64#05
Comm2.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
// 切紙 #1D#56#0
s := Chr(29) + Chr(86) + Chr(0) ;
Comm2.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
end;
procedure TForm1.Button7Click(Sender: TObject);
var s:Ansistring;
begin
if Button4.Enabled then
Button4.Click;
s:= chr(27) + chr(64);
Comm3.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
// '123456789012345678901234567890'
s := '壽比南山健康餐飲'+ Chr(10) + Chr(13) ;
Comm3.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '外帶' + Chr(10) + Chr(13);
Comm3.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '樹葡萄四物飲x1 300'+ Chr(10) + Chr(13) ;
Comm3.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
s := '小計 500' ;
Comm3.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
end;
procedure TForm1.Button8Click(Sender: TObject);
var s:Ansistring;
begin
if Button4.Enabled then
Button4.Click;
// 初始化
s:= chr(27) + chr(64);
Comm3.WriteCommData(PAnsiChar(s),Length(s)); //送出指令給遠端
end;
procedure TForm1.Button9Click(Sender: TObject);
var i:integer;
begin
if trim(edit4.Text)='' then exit;
openport(pansichar(ansistring(edit4.Text)));
for i:=1 to 1 do
begin
clearbuffer;
sendcommand('DIRECTION 1');
windowsfont(5, 115, 30, 0, 2, 0, '新細明體', pansichar('店家名稱:美又美'));
windowsfont(5, 150, 30, 0, 2, 0, '新細明體', pansichar('財產歸屬:總務課'));
windowsfont(5, 190, 30, 0, 2, 0, '新細明體', pansichar('登帳日:103/02'));
windowsfont(5, 255, 30, 0, 2, 0, '新細明體', pansichar('最低耐用年限:5 年'));
windowsfont(5, 290, 30, 0, 2, 0, '新細明體', pansichar('財產編號:3140302001-2038'));
barcode('50', '335', '39', '64', '1', '0', '2', '4', ('3140302001-2038'));
printlabel('1', '1');
end;
closeport;
end;
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
edit4.Text := ListBox1.Items[ListBox1.ItemIndex];
end;
end.
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END












