简单问题--判断当前记录下,某字段有多少字符。---欢迎讨论。(100分)

  • 主题发起人 主题发起人 ldaan3
  • 开始时间 开始时间
L

ldaan3

Unregistered / Unconfirmed
GUEST, unregistred user!
用adoconnection 和 adoquery 连接 access 数据表,然后在dbgrid中显示。
我想在 fields[3] 那里要个人按键盘输入。 我想在按下的时候,判断已经有了多少字符。如:
字段1 字段2 字段3
…… …… ……
…… …… 在这里输入:5271 这四个数字,我想在每次按键之前都显示在这里已经
有了几个字符,为什么这样的程序实现不了???
老习惯:解决者80 分,灌水20分。
procedure TForm1.DBGrid1KeyPress(Sender: TObject;
var Key: Char);
var
num_key:integer;
begin
num_key:=length(vartostr(dbgrid1.Fields[3].asstring));
showmessage(inttostr(num_key));
// 怎么显示的都是 0 ?
showmessage(vartostr(ADOQuery1.Fields[3].asstring));
//显示的都是空白字符。
end;
~~~~~~~~~~~~~~~~~~~这里用了value一样不行。
 
length(vartostr(dbgrid1.Fields[3].asstring));
改为
length(adoquery1.fields[3].asstring);
试试
 
这个问题看起来挺简单的,
可是在程序中运行就会发现挺难的了。
 
dbgrid1.Fields[3].asstring中Fields[3]是绑定数据库字段值,你输入时,值还没有
自动更新,当然不行了。
 
var
num_key:integer;
begin
num_key:=length(vartostr(dbgrid1.SelectedField.AsString));
showmessage(inttostr(num_key));

end;
 
简单:
procedure TForm1.DBGrid1KeyPress(Sender: TObject;
var Key: Char);
Const
num_key:integer;
begin
//这里显示的是所有输入到GRID中的字符总数
//暂未处理Ctrl等控制字符
If Key=VK_BackSpace then
Dec(Num_Key)
else
Inc(Num_Key);
showmessage(inttostr(num_key));
//
end;
 
首先多谢 1Fuyi。
我本意是 判断第几个字符,例如到了第三个字符,然后就对它前面的进行处理:
如: 输入数字,变成xxx/xxx的形式。
输入:125842 就会自动变成125/842
输入:125 就会自动变成125/

 
后退
顶部