如何在 Dbgrid 內類似setfocus功能 |
答題得分者是:chih
|
lilisn
一般會員 發表:35 回覆:62 積分:24 註冊:2003-03-09 發送簡訊給我 |
dbgrid 有4個columns,當key in columns[0],去檢查條件後不
符資料後,如何讓dbgrid停在columns[0],並將該欄輸入值還原空白. procedure TmainForm23.main3ADOQuery1custnoValidate(Sender: TField);
begin
if Length(main3ADOQuery1custno.AsString) = 8 then
if main3ADOQuery2.Locate('custno',Main3ADOQuery1custno.AsString,[]) then begin
main3ADOQuery1.Edit;
main3ADOQuery1.FieldByName('taxyear').AsString:=main3edit1.Text;
end else begin
showmessage('代號不存在');
如果1.
xxxx main3BGrid1.SelectedIndex:=0;
// 一值停在此
xxxx main3DBgrid1.setfocus;
// 跳下一欄
如何停在columns[0],並將該欄輸入值還原空白
謝謝
end;
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
建議寫在DBGridColExit裡面
procedure TForm1.DBGrid1ColExit(Sender: TObject);
begin
if main3ADOQuery1.State=dsBrowse then exit;//如果瀏覽狀態就不判斷
if (DBGrid1.SelectedField=main3ADOQuery1custno) then
if Length(main3ADOQuery1custno.AsString) = 8 then
if main3ADOQuery2.Locate('custno',Main3ADOQuery1custno.AsString,[]) then begin
main3ADOQuery1.FieldByName('taxyear').AsString:=main3edit1.Text;
end else
begin
showmessage('代號不存在');
main3ADOQuery1.FieldByName('taxyear').AsString:='';
main3BGrid1.SelectedIndex:=0; //這裡看你要停在此欄還是下一欄
abort;
end;
如果1.
xxxx main3BGrid1.SelectedIndex:=0;
// 一值停在此
xxxx main3DBgrid1.SelectedIndex:=1;
// 跳下一欄
end;
TRY TRY SEE
|
lilisn
一般會員 發表:35 回覆:62 積分:24 註冊:2003-03-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |