当在dbgrid中按下down键时。默认增加一空行。 此时在输入的时候还没有post;
怎样取得输入的字符。不在onkeypress,事件中取,不在onkeydown中取。怎样做。
怎样取得输入的字符。不在onkeypress,事件中取,不在onkeydown中取。怎样做。
解决方案 »
- idftp如何匿名下载
- [岗位]缺一到两个Delphi开发人员
- 刚起步一个问题?
- 关于自定义消息:If your application is marked version 4.0, you can use range 0x8000 (WM_APP) through 0xBFFF for private message
- 为什么SQL SERVER的ADO驱动不支持分页?
- 请问怎么读取动态数组的长度?谢谢
- 用ole调用Excel,怎么能让打印按钮可用?
- 十万火急 :delphi如何实现套打
- 我想知道怎样用语句来得到一个...
- DELPHI疯了?
- D7中的这个怎不见了啊-----急急
- Delphi一个礼拜能学到可以找工作的地步么,开发出什么东西才能应聘啊?
来取值呢?>
此时的值在表字段是 null值.只有提交后才能取表里的值。没提交前怎样得到输入的值。
当在dbgrid按下down键时,自动增加一空行.
你在一个dbgrid的某一列输入值的时候,此时焦点,光标都停留在这一列。你能在一边输一边showmessage('输入的字符串')显示出来吗?如果能显示出来问题就解决了。
分就全给你.
(是全部串)不是单个。 是单个的在onkeypress可以抓得到。
begin
showmessage('ddd');
end;DataSource的OnDataChange事件procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if Field=table1.FieldByName('name') then
showmessage('dd');
end;
你在一个dbgrid的某一列输入值的时候,此时焦点,光标都停留在这一列。你能在一边输一边showmessage('输入的字符串')显示出来吗?如果能显示出来问题就解决了。
注意,此时焦点并没有离开column[0]位置。 一离开就可以抓到这串字符。我要实模糊查找功能。在列的下面显示另外一个过滤框. 现在就是取不出输入的字符.
要在当前输入的Cell不处于编辑状态时(不一定Post)才能取到,比如输入时,按回车
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
Caption := DBGrid1.SelectedField.AsString;
end;
或者按Button1
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(DBGrid1.SelectedField.AsString);
end;
在列的下面显示另外一个过滤框. 现在就是取不出输入的字符.
就是
当在dbgrid,按下down键,到最后,自动增加一空行。为什么焦点一离开该行。自动cancel了呢?怎样让离开焦点,但不cancel;
例如, 数据表有个字段为UserID:
procedure TForm1.ADODataSet2BeforePost(DataSet: TDataSet);
begin
showmessage(DataSet.FieldByName('UserID').AsString);
end;
缺点:输入中文时不行,拷贝粘贴时也不行,必须再按一下键能触发KeyUp的。
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if DBGrid1.Tag = 1 then begin Key := #0; Exit; end;
DBGrid1.Tag := 1;
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, 2, 0);
end;procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
DBGrid1.Tag := 0;
Form1.Caption := DBGrid1.SelectedField.AsString;
end;
谢谢 sysu(死树) .你的方法我没试。但下面的方法可以。
ohmygod(我的天啊)写的.
if DBGrid1.ControlCount>0 then //什么意思TInplaceEdit(DBGrid1.Controls[0]).Text; //什么意思
这两句能取出来,但不知什么意思。