一个form上有若干edit,如何判断哪个是输入焦点?(100分)

  • 主题发起人 主题发起人 张剑波
  • 开始时间 开始时间

张剑波

Unregistered / Unconfirmed
GUEST, unregistred user!
请举例,谢谢。
 
Form 的属性里有一个ActiveControl,返回值是TWinControl(TEdit的父类)
这样用:
if (form1.ActiveControl is TEdit) then
TEdit(form1.ActiveControl).text:='give me score';
等我做好实验再来!
 
我已经测试过了,完全正确,有一点要注意,此代码不能放在按钮的Click事件中,
因为按下时,焦点到按钮上了。用菜单或form的click的事件.
我的专家分还是零,如果对你有帮助,请给我加分!
另外:for i:=1 to form1.ComponentCount-1 do
begin

end;
可以枚举控件
 
gydc:
我另开了50分的贴子,你先那分,我再听听后面的意见。
我是痛快人,我也喜欢痛快人。
 
在一个form上有若干edit,再放一个Timer1,其它见下面的代码。

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Interval := 100;
if ActiveControl <> nil then
ActiveControl.Left := ActiveControl.Left + 1;
end;
 
//首先为每个Edit设置不同的Tag值:
//如:Edit1.tag:=1;
//如:Edit2.tag:=2;
...
//如:Edit9.tag:=9;
for I:= 0 to ControlCount -1 do
begin
if Controls is TEdit then
begin
if (Controls as TEdit).Focused then
begin
case (Controls as TEdit).tag of
1:showmessage('Edit1 Focused.');
2:showmessage('Edit2 Focused.');
...
9:showmessage('Edit9 Focused.');
end;
end;
 
多人接受答案了。
 
后退
顶部