Delphi下POS机控制钱箱,客显,打印机,小票打印
1、控制POS机的客户显示屏
procedure TFrmMain.ShowMoney(Money_Port: String;Money_String:String);
//Moneey_Port 顾显接口Com1 or Com2 Money_String 顾显显示的内容
var
PrnFileName:TextFile;
begin
Assignfile(PrnFileName,Money_Port);
printer.Canvas.Font.Name:='宋体';
printer.Canvas.Font.Size:=8;
printer.Canvas.Font.Charset:=GB2312_CHARSET;
Rewrite(PrnFileName);
write(PRNFileName,chr(12)); //清除顾显
write(PRNFileName,chr(27)+chr(81)+chr(65)+Money_String+chR(13)); //显示信息
CloseFile(PRNFileName);
end;
2、不换页走纸的打印
procedure TFrmMain.AddPrintStrings(Strings: TStrings);
var
Prn: TextFile;
i: word;
begin
Assignfile(Prn,'lpt1');
printer.Canvas.Font.Name:='宋体';
printer.Canvas.Font.Size:=9;
printer.Canvas.Font.Charset:=GB2312_CHARSET;
try
Rewrite(Prn);
try
for i := 0 to Strings.Count - 1 do
writeln(Prn, Strings.Strings[i]);
finally
CloseFile(Prn);
end;
except
on EInOutError do
MessageBox(Handle,PChar('文本打印出错!'),'警告',MB_ICONEXCLAMATION or MB_OK);
end;
end;
3、走纸换页的打印
procedure TFrmMain.PrintStrings(Strings: TStrings);
var
Prn: TextFile;
i: word;
begin
AssignPrn(Prn);
try
Rewrite(Prn);
printer.Canvas.Font.Name:='宋体';
printer.Canvas.Font.Size:=9;
printer.Canvas.Font.Charset:=GB2312_CHARSET;
&nb
相关文档:
Event事件用法与Mutex差不多,但它可以使用:SetEvent(启动运行)ResetEvent(暂停运行)、PulseEvent(执行一次后立即暂停)。
先看一下创建函数:CreateEvent(
......
上文中,多线程同步主窗体的Label的Caption属性值,发现一个问题:使用Synchronize用于同步的时候,主窗体好像死掉一样;而直接用子程序为Label的引用赋值,则有时会出现“Canvas does not allow drawing”错误。书上说VCL同步一定要用Synchronize,而不能直接访问。
测试:
{主窗体} ......
============================================================================
Windows95是Microsoft公司的第一个真正的多任务操作系统。在每一时刻可以有多个进程同时工作,而每一个进程又包含有多个线程。但只有一个处理器的计算机不可能真正地“同时”执行多个线程,而是操作系统把时间分成若干个时间片, ......
Source Code
http://www.codefans.com/CodeList/Catalog_5_CodeTime_Desc_1.html
http://www.vscodes.com/sitemap.html
http://www.itlove.net/Soft/261/
DelphiX
http://www.micrel.cz/Dx/
http://www.delphi3d.net/index.php
http://www.pascalgamedevelopment.com/
http://www.2ccc.com/article.asp?articleid ......
引用参数:
引用参数用var关键字标示
procedure DoubleTheValue (var Value: Integer);
begin
Value := Value * 2;
end;
在这种情况下,参数既把一个值传递给过程,又把新值返回给调用过程的代码。当你执行完以下代码时:
var
X: Integer;
begin
X := 10;
DoubleTheValue (X);
x变量的值变成了20 ......