Memo的focus問題 |
尚未結案
|
effielee
一般會員 發表:2 回覆:6 積分:1 註冊:2004-03-18 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
jimmy_wei
高階會員 發表:9 回覆:176 積分:147 註冊:2003-08-28 發送簡訊給我 |
偷吃步,可用,試試吧!!
var BB_DOWN: Boolean; procedure TForm1.Button1Click(Sender: TObject); begin BB_DOWN:= True; Memo1.Lines.Strings[0]:= Memo1.Lines.Strings[0]; Memo1.SetFocus; SendMessage(Memo1.Handle, WM_KEYDOWN, 0, 0); end; procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if BB_DOWN then begin Shift:= [ssCtrl]; Key:= 36; BB_DOWN:= False; end; end;不過hagar大大的方法比較簡單,受教了!! 發表人 - jimmy_wei 於 2005/03/08 19:02:59 |
effielee
一般會員 發表:2 回覆:6 積分:1 註冊:2004-03-18 發送簡訊給我 |
謝謝兩位的指教, 但我試過這兩種方式後卻無法達到我的目的,因為第一行如輸入Enter後游標會停 在第二行第一個位置,我的memo是用來接收掃bar code機器所讀入的號碼, bar code機讀入號碼後會自動傳Enter到memo1中, memo1在接收到Eter鍵後會自動判斷號碼是否符合規則, 符合跳至memo2,不符會將memo1內容清空,memo1.setfocus使用者繼續輸入, 但我無法將memo1整個清空(包含Enter鍵),所以會造成回到memo1時游標是停在 第二行,所以我應該要問的是如何將memo的內容(包含Enter)完全清除才是, 真是抱歉了
|
chris_shieh
高階會員 發表:46 回覆:308 積分:240 註冊:2004-04-26 發送簡訊給我 |
|
effielee
一般會員 發表:2 回覆:6 積分:1 註冊:2004-03-18 發送簡訊給我 |
|
pillar62
資深會員 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
|
effielee
一般會員 發表:2 回覆:6 積分:1 註冊:2004-03-18 發送簡訊給我 |
引言: 你好 我剛剛用chris_shieh的方法測試過是可以的耶!!那你試試看 memo1.lines.clear; //清除內容 memo1.SetFocuse 試試看吧!! Pillar Wang你好, 因為我的判斷式必須寫在Memo1KeyPress事件中,所以經我測試是無效的 procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char); begin if key = #13 then begin Tmemo(Sender).Clear; Tmemo(Sender).SetFocus; end; end; |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 在判斷式中再加一個key來控制﹐如下﹕
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char); begin if key = #13 then begin if Memo1.Text <> 'xinsheng' then begin Memo1.Clear; Key := #8; end else begin Memo2.SetFocus; end; end; end;================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟 |
pillar62
資深會員 發表:9 回覆:324 積分:271 註冊:2002-04-15 發送簡訊給我 |
請問你掃入的條碼長度固定嗎?如果固定的話,可以在memo的onChange事件裡面判斷喔!!不然的話可以加一行程式
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char); begin if key = #13 then begin if Memo1.Text <> 'xinsheng' then begin Memo1.Clear; Key := #8; end else begin Memo2.SetFocus; end; end; key := #0; end;Pillar Wang
------
Pillar Wang |
effielee
一般會員 發表:2 回覆:6 積分:1 註冊:2004-03-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |