移動物件焦點的流程迷思 |
答題得分者是:pedro
|
039917
一般會員 發表:9 回覆:16 積分:5 註冊:2003-09-14 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
039917您好
這樣問問題好像有點像作業....
< class="code">
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
begin
s:=stringOfChar('*',Random(5));
case Length(s) of
0:Edit1.SetFocus;
1:Edit2.SetFocus;
2:Edit3.SetFocus;
3:Edit4.SetFocus;
4:Edit5.SetFocus;
end;
end;
|
039917
一般會員 發表:9 回覆:16 積分:5 註冊:2003-09-14 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
039917 你好
你可依下列步驟,操作看看 1.將5個Edit.Maxlength先設好最大的長度 2.在Edit1.OnKeyUp事件中寫入下列程式 procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin If Sender Is TEdit Then Begin // 是TEdit類別物件才處理 With TEdit(Sender) Do Begin If MaxLength > 0 Then Begin // 有設定MaxLength If Length(text) = maxLength Then Begin //輸入字元達到MaxLength //自動跳下一個控制項 (Owner as TControl) 就是指Form1 (Owner as TControl).Perform(WM_NEXTDLGCTL,0,0); End; End; End; End; end; 3.將Edit2~Edit5 的OnKeyUp 都同時設為 Edit1KeyUp 共用同一個事件 4.操作看看,是不是這樣 |
039917
一般會員 發表:9 回覆:16 積分:5 註冊:2003-09-14 發送簡訊給我 |
procedure TForm1.Edit1KeyPress(Sender: TObject; var key : Char);
begin
s := s key ;
if length(s) = 2 then
begin
edit1.Text := s;
Key := #0;
SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);
s := '';
end;
end; procedure TForm1.Edit2KeyPress(Sender: TObject; var key : Char);
begin
s := s key ;
if length(s) = 4 then
begin
edit2.Text := s;
Key := #0;
SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);
s := '';
end;
end; procedure TForm1.Edit3KeyPress(Sender: TObject; var key : Char);
begin
s := s key ;
if length(s) > 5 then
begin
Key := #0;
SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);
s := '';
end;
end;
===================================================================
上面的 key 要以 APRO 元件的 Digit 來取代
procedure TForm1.ApdTapiDevice1TapiDTMF(CP: TObject; Digit : Char;
ErrorCode: Integer);
|
039917
一般會員 發表:9 回覆:16 積分:5 註冊:2003-09-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |