是这样的
我在edit中限制非数字输入,写了这样一个函数
function Isnumberic(edt:Tedit):boolean;
var str:string;
i:integer;
begin
result:=true;
str:=edt.Text; if str>'' then
for i:=1 to length(str) do
begin
if (str[i]<'0') or (str[i]>'9') then
begin
result:=false;
delete(str,i,1);//删除输入的非数字字符
edt.Text:=str;//重新赋值给edit,问题就出在这里,此时光标会回到edit框的起始位置, 而不是我想要的最后一个数字字符的后面。想问下在下面加什么代码可以实现光标处于最后一个字符的后面
{????} end;
end;
end;
我在edit中限制非数字输入,写了这样一个函数
function Isnumberic(edt:Tedit):boolean;
var str:string;
i:integer;
begin
result:=true;
str:=edt.Text; if str>'' then
for i:=1 to length(str) do
begin
if (str[i]<'0') or (str[i]>'9') then
begin
result:=false;
delete(str,i,1);//删除输入的非数字字符
edt.Text:=str;//重新赋值给edit,问题就出在这里,此时光标会回到edit框的起始位置, 而不是我想要的最后一个数字字符的后面。想问下在下面加什么代码可以实现光标处于最后一个字符的后面
{????} end;
end;
end;
解决方案 »
- tab键转移焦点问题
- delphi中某些代码不编译执行的问题
- 有关delphi的数据库编程
- 借此問一下,一個MRP系統現在要多少錢才能買的到。其主要模塊有....歡迎大家發表意見!
- 求助,QRDBText中的字符串能换行吗?
- Socket通信时是否有最大连接数的限制?
- 关于C++和DELPHI的数据类型兼容的问题
- 极度郁闷!放分!
- 困扰很久的问题 pulic 与 var的问题?!
- 我已经在richedit中定位了光标,如果richedit一次只能显示10行,我的光标定位在第11行,我如何能让光标所在行自动滚动到可见的范围之内?
- delphi 2006 能不能写 C++ 程序
- webservice调用
var str:string;
i:integer;
begin
result:=true;
str:=edt.Text; if str>'' then
for i:=1 to length(str) do
begin
if (str[i]<'0') or (str[i]>'9') then
begin
result:=false;
delete(str,i,1);//删除输入的非数字字符
edt.Text:=str;
edt.selstart:=i;
edt.setfocus;
end;
end;
end;
begin
if (Key<'0')or(Key>'9')then
Key:=#0;
end;
改成 for i:=length(str) downto 1 do
PS:longchaohui(阿龙) 谢谢你,不过我不想写在keypress事件中。:)
我是写在edit的change事件中的。
另外,hellolongbin(一个人[终不似,少年游]) ,为什么要改成 for i:=length(str) down to 1 ?区别是什么?
毛毛毛毛,你怎么看出来我是刚毕业学生的?