小弟我操作的是明华IC兼容卡机。。插入西门子4442卡,最普通的了现在我遇到一个问题就是A窗体已经打开了串口和读取IC卡的数据,这个没问题,我现在就是想在打开A窗体的同时,也要同时打开B窗体,B窗体也要读取IC卡机和IC卡的数据,不过现在打开A窗体的同时再打开B窗体,B窗体就显示串口被占用
各位大哥有没有什么好的办法可以共享串口设备数据呢??
各位大哥有没有什么好的办法可以共享串口设备数据呢??
解决方案 »
- TDBGridEh终于可以用了,现在想点击标题栏排序,可是从网上拷了很多代码,都不能用,谁能帮忙
- 如何在子窗体关闭的同时关闭主窗体
- 关于动态添加图片到TImageList中的问题!!!
- 将数据导出到excel,同名文件自动覆盖应该怎么做?
- fastreport中怎么把小数位后面的0显示出来,比如保留两位小数显示“100.10”
- 打印问题
- 如何在窗体关闭时判断某条件,不满足时不让窗体退出?
- 建新表时如何加上缺省值?一直在线!
- 急!急!急!远程文件传送问题:两台计算机通过modem拨号网络连接成功后,如何得到远程计算机的动态ip地址? (高分)
- 求教DELPHI学习的方法
- listview某列单元格可以手动输入数据
- 问题再问,
饿。。小弟我不太明白,只是初学者,可以说的清楚点么?我下面贴下代码以下贴的是根据明华IC卡的DEMO写的
打开串口begin
icdev:=auto_init(0,9600); //初始化串口一,并将读写器波特率设为9600
if icdev<=0 then
begin
showmessage('IC卡机连接失败,请检查。');
end;
end;
读取卡数据begin
status:=0;
st:=get_status(icdev,@status); //检测读写器中是否有卡,
if status=0 then //status=0表示无卡,=1表示有卡;
begin
pnl1.Caption:='请插入IC卡';
exit;
end
else
password:='ffffff';
st:=asc_hex(password,password1,3);
st:=csc_4442(icdev,3,password1);
offset:=32; //以ASC形式读写
length:=6; //读取6位
st:=srd_4442(icdev,offset,length,data2);
edt2.Text:=data2;
pnl1.Caption:='插入正确';
//a:=data2;
end;
你用的是读卡器提供的API接口.那就没什么问题。A,B窗口随便用,只是调函数而已嘛.第二种可能:
你自己用的三方组件去读写串口:
不要创建两个读写串口的组件对象.用一个就行了.
要么把它设置为全局对象,要么放到某一个窗口中(如A),另一个窗口(B)要读写数据时,直接使用A中的组件对象.不要再弄另一个去打开串口.第三种可能:
直接用的windows API去操作串口:
跟第一种情况类似