高手,高手,高高手,快来帮我,100分的问题,回答出就给分. 分不够可以再加! (100分)

  • 主题发起人 主题发起人 随缘
  • 开始时间 开始时间

随缘

Unregistered / Unconfirmed
GUEST, unregistred user!
// 100分的问题,回答出就给分,如分不够可以再加.
//
procedure TFeedkindForm.ToolButton3Click(Sender: TObject);
begin
Listview1.Selected.EditCaption;
end;

//问题在下面
procedure TFeedkindForm.ListView1Edited(Sender: TObject;
Item: TListItem;
var S: String);
begin
if trim(s) = '' then
begin
Agentspeak(genie,1,'接水性质不能为空','');
Abort;
{ 问题是:这句只能取消原来的输入,光标已退出,我的目的是
想让其还处于EDIT状态,禁止光标移出,让用户重新输入直到输入值
符合要求,我查过以前的离线数据,但没有我的答案,请各位多多帮忙}

end;
end;

 
if trim(s) = '' then
begin
Agentspeak(genie,1,'接水性质不能为空','');
// abort;
s:=item.Caption;
item.editCaption;
end;
 
我试了一下,没有起到作用,光标还是可以移出不能起限制用户输入的作用!
 
没有办法,就连windows就是这样处理这种情况的,不信你试!
 
我见过这种,如在资源管理器中,当试图对某个正在使用中的文件或重名进行改名时,
计算机提示文件使用中或重名,这时用户除按ESC外光标总是停在那里!!
 
我已经试过,可以的
var
i:integer//全局变量 初始为0
if trim(s) = '' then
begin
Agentspeak(genie,1,'接水性质不能为空','');
s:=item.Caption;
i:=1;
end;

onkeyup中
if key=13 and i=1 then
Listview1.Selected.EditCaption;
 
[:(]不错,不过好像无法控制鼠标的动作!
 
Abort;//实际上你已解决了问题,退出已变得不再重要!
 
后退
顶部