| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4162 人关注过本帖
标题:Delphi下使用串口控制顾客显示屏
只看楼主 加入收藏
wbhfq_dw
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2004-5-8
收藏
 问题点数:0 回复次数:3 
Delphi下使用串口控制顾客显示屏

使用Delphi编程的人员如果需要在Windows下使用串口控制顾客显示屏或串口打印机,就需要使用外来方式。我们这里提供了API_COM.DLL这个链接库供调用。
首先把API_COM.DLL文件复制到编写的源程序目录下,接着在程序的开头声明调用的三个函数来源:
var
  Form1: TForm1;
{加入下面三行声明}
function com_init(com:Integer; baud:Dword):Boolean;stdcall;external 'api_com.dll';
function com_rest:Boolean;stdcall;external 'api_com.dll';
function com_send(buf:PChar; len:Integer):Boolean;stdcall;external 'api_com.dll';

implementation

{$R *.DFM}

Com_init(1,2400)是打开串口进行通讯,1是打开COM1,波特率为2400。如果打开成功,它会返回逻辑真告知串口打开。
Com_rest是关闭串口。
Com_send(命令,长度)是发送数据到串口。

{在窗体创建时打开端口}
procedure TForm1.FormCreate(Sender: TObject);
begin
Com_init(1,2400);
end;

{在按钮中发送内容}
procedure TForm1.Button1Click(Sender: TObject);
begin
PDStr:=Chr(2)+Chr(77);{控制顾客显示屏开钱箱指令}
if com_send(Pchar(PDStr),Length(PDStr)) then
begin
Label1.Caption :='已经发送命令';
end
else
begin
Label1.Caption :='发送失败';
end;
end;

{在关闭窗体时关闭端口}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Com_rest;
end;
上面语句是控制顾客显示屏开钱箱的命令,其他的命令集只需要改变按钮中的PDStr的值即可:
下面是控制顾客显示屏显示1234.56的命令:
PDStr:=Chr(27)+Chr(81)+Chr(65)+’1234.56’+Chr(13);
if com_send(Pchar(PDStr),Length(PDStr)) then
begin
Label1.Caption :='已经发送命令';
end
else
begin
Label1.Caption :='发送失败';
end;
下面是控制顾客显示屏显示“总计”灯的命令:
PDStr:= Chr(27)+Chr(115)+’2’;
if com_send(Pchar(PDStr),Length(PDStr)) then
begin
Label1.Caption :='已经发送命令';
end
else
begin
Label1.Caption :='发送失败';
end;
如果需要控制串口的POS58打印机打印,也只需要重新给PDStr赋值:
PDStr:=’Delphi Printer on COM1’+chr(10);
要POS58开钱箱,则需要如下赋值:
PDStr:= Chr(27)+'p'+Chr(0)+Chr(60)+Chr(255);
搜索更多相关主题的帖子: 串口 Delphi 顾客 显示屏 
2004-05-09 15:51
多情天使
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2004-5-8
收藏
得分:0 
恩,楼主这个挺有用

2004-05-10 01:08
yangguofa
Rank: 1
等 级:新手上路
帖 子:197
专家分:0
注 册:2004-5-5
收藏
得分:0 

兄台,你这个链接库API-COM.DLL能否也发布上来大家学习学习,我对这方面也很感兴趣,

能否多求教求教你!

谢谢.

yangguofa@126.com


/bbs/UploadFile/2005-3/2005320191459674.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open('http://www./bbs/UploadFile/2005-3/2005320191459674.gif');}" onmousewheel="return imgzoom(this);" alt="" />
2004-05-10 08:46
hao0030
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-2-13
收藏
得分:0 

请教LZ用VB能实现吗?

2006-02-13 10:05
快速回复:Delphi下使用串口控制顾客显示屏
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017442 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved