9 个解决方案
#1
实现他的OnKeyPress事件就可以了,判断其参数Key是否等于 #8,如果相等,则将dbedit所关联的数据集中的对应字段设为空
#2
试过了,OnKeyPresss事件不行。DBEdit是数据库感知控件,其readonly必须设为true,如果这样的话,该输入框的OnKeyPresss根本就执行不进去;若将readonly改为false,则又允许了用户可以修改,纠结……
#3
偶一般用edit,数据感知控件用起来不爽~~和数据绑定太死。
#4
就算是然dbedit的readonly设置为true;
它也是接受onkeypress事件的.
我试过了,你用的什么版本?我的是D6
#5
procedure dbedtaaKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #8 then
begin
DataSet1.Edit;
DataSet1.FieldValues['fieldName']:= '';
DataSet1.Post;
end;
end;
begin
if Key = #8 then
begin
DataSet1.Edit;
DataSet1.FieldValues['fieldName']:= '';
DataSet1.Post;
end;
end;
#6
procedure TForm1.DBEdit1KeyPress(Sender: TObject;
var Key: Char);
begin
If key = #8 Then
begin
DBEdit1.DataSource.DataSet.Edit;
DBEdit1.Field.AsString := '';
End
else
key := Chr(0);
end;
var Key: Char);
begin
If key = #8 Then
begin
DBEdit1.DataSource.DataSet.Edit;
DBEdit1.Field.AsString := '';
End
else
key := Chr(0);
end;
#7
呵呵,将这个edit设置为只读,然后在OnKeyDown中处理退格键、删除键,如果用户按下了这两个键,就用代码清空dbedit中的内容,呵呵
#8
我用的是D7
#9
7楼正解,我最后是用OnKeyDown事件实现的,dbedit的只读属性保留,如果是退格键、删除键,则将感知控件的文本内容置空,并且将数据集中的字段值清空;如果是用户敲击了其他的键,则提示他应该双击该输入框,在弹出的窗口中进行选择。谢谢所有人的回答 ^_^
#1
实现他的OnKeyPress事件就可以了,判断其参数Key是否等于 #8,如果相等,则将dbedit所关联的数据集中的对应字段设为空
#2
试过了,OnKeyPresss事件不行。DBEdit是数据库感知控件,其readonly必须设为true,如果这样的话,该输入框的OnKeyPresss根本就执行不进去;若将readonly改为false,则又允许了用户可以修改,纠结……
#3
偶一般用edit,数据感知控件用起来不爽~~和数据绑定太死。
#4
就算是然dbedit的readonly设置为true;
它也是接受onkeypress事件的.
我试过了,你用的什么版本?我的是D6
#5
procedure dbedtaaKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #8 then
begin
DataSet1.Edit;
DataSet1.FieldValues['fieldName']:= '';
DataSet1.Post;
end;
end;
begin
if Key = #8 then
begin
DataSet1.Edit;
DataSet1.FieldValues['fieldName']:= '';
DataSet1.Post;
end;
end;
#6
procedure TForm1.DBEdit1KeyPress(Sender: TObject;
var Key: Char);
begin
If key = #8 Then
begin
DBEdit1.DataSource.DataSet.Edit;
DBEdit1.Field.AsString := '';
End
else
key := Chr(0);
end;
var Key: Char);
begin
If key = #8 Then
begin
DBEdit1.DataSource.DataSet.Edit;
DBEdit1.Field.AsString := '';
End
else
key := Chr(0);
end;
#7
呵呵,将这个edit设置为只读,然后在OnKeyDown中处理退格键、删除键,如果用户按下了这两个键,就用代码清空dbedit中的内容,呵呵
#8
我用的是D7
#9
7楼正解,我最后是用OnKeyDown事件实现的,dbedit的只读属性保留,如果是退格键、删除键,则将感知控件的文本内容置空,并且将数据集中的字段值清空;如果是用户敲击了其他的键,则提示他应该双击该输入框,在弹出的窗口中进行选择。谢谢所有人的回答 ^_^