最近在做一个系统,需要条码扫描。
大家一般的话,使用什么网格控件作为录入?另外,扫描一个条码后,在delphi中 使用什么事件来触发数据库的查询操作的事件呢?
因为系统还需要可能手动输入条码,防止在条码不能识别的情况下,输入条码后用什么事件来触发呢?以前没做过条码,请大家指点下,有demo的更好,100分送上。

解决方案 »

  1.   

    网格控件随便了,stringgrid,listview,第三方的dxgrid等等触发查询事件,这个要你自己写了,比如回车时就可以进行查询操作
      

  2.   

    一般条码枪输入完条码后,会发送一个回车信号,#13
    所以,在输入框的OnKeyPress事件里判断#13就可以了。
      

  3.   

    用一個EDIT來接收,處理後再發送到STRINGGRID或LISTVIEW裏面去。一般掃描槍都會在掃描後帶一個回車的。不過設備也有設置,可翠不帶。
      

  4.   

    键盘、磁卡读卡器、条码枪看起来不一样,其实都一样都可以通过OnKeydown事件来获取在OnKeydown事件中,判断是否是条形码(一是连续接收的是一串字符,长度要与条形码的位数一样,中间不能有其他不符要求的字符,最后接收的是回车键)知道以上原理后,完全可用键盘来测试程序
      

  5.   

    网格,要看你用在什么地方。我个人比较常用的有cxGrid, cxTreeList, RzStringGrid, ...
      

  6.   

    類似procedure TRES_BOM_VIEW_F.cx_snKeyPress(Sender: TObject; var Key: Char);
    begin
      inherited;
      if not (Key in ['0'..'9',#8,#13]) then
        Key:=#0;
      if Key=#13 then
      begin
        if Length(Trim(cx_sn.Text))<>11 then
        begin
          MessageDlg('請檢查料號:沒有找到此料號的數據!',mtWarning,[mbOK],0);
          cx_sn.SelectAll;
          Exit;
        end
        else
        begin
          cxButton1Click(Sender);
        end;
      end;
    end;帶條碼控件,用fastreport2.5就行
      

  7.   

    首先保证你的扫描枪程序里有回车符假设delphi里你用Edit_No接收条码,那么在Edit_No的OnKeyPress事件里判断回车符就可以procedure TForm_yanguan.Edit_NoKeyPress(Sender: TObject; var Key: Char);
    begin
        if key=#13 then
        begin
            Edit_No.SelectAll;//保证下一次扫描可以完全显示新条码
            checkNo;//自定义查询过程 查询Edit_No.text就可以
        end;
        Edit_No.SetFocus;
    end;在条码不能识别时,你只需手动输入后在按回车就可以。网格控件,我觉得自带的stringgrid 和dbgrid 完全可以满足要求吧,如果特殊要求比较多,可以安装infopower4000控件,里面的网格控件比较多。
      

  8.   

    这与网格控件有关系吗??
    1、扫描枪本身就是一个键盘;
    2、在KeyPress中定义事件即可。
    3、扫描枪可以设置是否自动回车。这类问题以前的帖子多得很,楼主应该先找找以前的帖子。