Edit(Scan Lable )問題 |
尚未結案
|
doll_candy
初階會員 發表:110 回覆:53 積分:32 註冊:2002-04-22 發送簡訊給我 |
圖中PCB_SN 動作如下
1.SCAN LABLE (序號)
2.SCAN LABLE (OK)
則繼續第二個序號,動作重覆
但產品如NG則動作如下
1.SCAN LABLE (序號)
2.SCAN LABLE (NG) -->>則NG_CODE ENABLE & SetFocus
3.SCAN NG_CODE (可重覆) -->>每SCAN 一次,則會把NG_CODE放置隔壁的StringGrid
4.SCAN LABLE (END) -->>如NG_CODE刷完(此序號)
5.重回PCB_SN SetFocus 各位大大這是我想要做的動作:
我的想法是
ok產品序號則直接刷SN則OK
NG產品序號則先刷NG Lable然後刷序號則會focus到NG_CODE,然後結束刷END Lable
配備:貼於產品上的序號,每站都會有OK,NG,END 3個LABLE & 掃瞄器 & NG_CODE LABLE 但我現在有個問題就是之前,我所作業確認的動作,都是靠Button來完成.
如今沒Button我必須完全靠scan lable 於edit元件,完成作業,
讓我完全沒頭序,可否請問有經驗的大大幫幫忙教教我
以上想要作的動作,只是我想的方式 doll_candy
------
doll_candy |
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
Hi doll_candy 您好:
先釐清一下, 你的作用是不是要做條碼的輸入, 一般條碼掃描器可以設定掃入的文字後加送出"Enter"的碼, 所以你可以直接在Edit的OnKeyDown裡面做判斷.
這裡有一篇其他先進不錯的參考
http://delphi.ktop.com.tw/topic.php?topic_id=43361 OnKeyDown event example
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_Return then begin if trim(Edit1.Text) <> 'OK' then begin Edit1.SetFocus; exit; end; end; end;我不是高手, 高手是正在銀幕前微笑的人.
------
我不是高手, 高手是正在銀幕前微笑的人. |
sanhang
一般會員 發表:12 回覆:25 積分:17 註冊:2002-08-31 發送簡訊給我 |
公用變數如下
var PCBSN : string; ErrorList : TStringList;在Form Create的地方 ErrorList := TStringList; 在PCB_SN的KeyPress事件中 if Ord(Key) = VK_Return then begin // 檢查該SN是否合法 if (CheckPCBSN(PCB_SN.Txt)) then begin // PCB SN is validated PCBSN := PCB_SN.Txt; PCB_SN.Clear; PCB_SN.Setfocus; Exit; end else begin // PCB SN is not validated MessageDlg('PCB SN isn''t validated!',mtError,[mbOK],0); PCB_SN.Clear; PCB_SN.Setfocus; Exit; end; if (UpperCase(PCB_SN.Txt)='OK') then begin // OK 的動作 ...... PCB_SN.Clear; PCB_SN.Setfocus; Exit; end; if (UpperCase(PCB_SN.Txt)='NG') then begin // NG 的動作 ...... NG_CODE.Clear; NG_CODE.Setfocus; Exit; end; end;在NG_CODE的KeyPress事件中 if Ord(Key) = VK_Return then begin // 檢查該NG Code是否合法 if (CheckNGCODE(NG_CODE.Txt)) then begin // NG CODE is validated ErrorList.Add(NG_CODE.Txt); NG_CODE.Clear; NG_CODE.Setfocus; Exit; end else begin // NG CODE is not validated MessageDlg('NG CODE isn''t validated!',mtError,[mbOK],0); NG_CODE.Clear; NG_CODE.Setfocus; Exit; end; if (UpperCase(NG_CODE.Txt)='END') then begin NG_CODE.Clear; NG_CODE.Enable := False; PCB_SN.Setfocus; end; ..... end;最後把ErrorList中的NG_CODE資訊傳到StringGrid中就好了 試試看吧 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |