eidt 控件
我要在用戶輸入完内容,並且按回車健后才去
將輸入在edit 中的内容進行處理,要如何做?在那個事件中作?我在edit 的change 事件中寫代碼,每次輸入一個字符都去
觸發了事件,查數據,很不好。應該如何做呢?procedure TF_Search_ML.Edit1Change(Sender: TObject);
var
ls_key:string;
Sqltext:string;
begin
//接受用戶輸入,組成sql語句,進行查詢
ls_key:=trim(Edit1.Text);
ls_key:='''%'+ls_key+'%''';
Sqltext:='select '
+'mlid, '
+'code, '
+'name, '
+'gg, '
+'code||name||gg filter '
+'from ml '
+'WHERE code like ''M%'''
SQLtext:=SQLtext+' and filter like '+ls_key;
//
CDM.CDSmL.Close;
CDM.CDSmL.CommandText:=SQLtext;
CDM.CDSmL.Open;
//
end;
我要在用戶輸入完内容,並且按回車健后才去
將輸入在edit 中的内容進行處理,要如何做?在那個事件中作?我在edit 的change 事件中寫代碼,每次輸入一個字符都去
觸發了事件,查數據,很不好。應該如何做呢?procedure TF_Search_ML.Edit1Change(Sender: TObject);
var
ls_key:string;
Sqltext:string;
begin
//接受用戶輸入,組成sql語句,進行查詢
ls_key:=trim(Edit1.Text);
ls_key:='''%'+ls_key+'%''';
Sqltext:='select '
+'mlid, '
+'code, '
+'name, '
+'gg, '
+'code||name||gg filter '
+'from ml '
+'WHERE code like ''M%'''
SQLtext:=SQLtext+' and filter like '+ls_key;
//
CDM.CDSmL.Close;
CDM.CDSmL.CommandText:=SQLtext;
CDM.CDSmL.Open;
//
end;
begin
.....
end;
procedure TF_Search_ML.Edit1KeyPress(Sender: TObject; var Key: Char);
var
ls_key:string;
Sqltext:string;
begin
if key=#13 then
begin
//
ls_key:=trim(Edit1.Text);
ls_key:=AnsiReplaceStr(ls_key,' ', '%');
ls_key:=AnsiReplaceStr(ls_key,'%%', '%');
ls_key:='''%'+ls_key+'%''';
//
Sqltext:='select '
+'mlid, '
+'code, '
+'name, '
+'gg, '
+'code||name||gg filter '
+'from ml '
+'WHERE code like ''M%'' ' ;
SQLtext:=SQLtext+' and code||name||gg like '+ls_key;
//
CDM.CDSmL.Close;
CDM.CDSmL.CommandText:=SQLtext;
CDM.CDSmL.Open;
end;
end;