如果只判断TEdit控件可以试一下一下代码var c:TControl; i:integer; begin edit1.Focused; for i:=0 to self.ControlCount-1 do begin c:=self.Controls[i]; if (c.ClassName='TEdit') and ((c as TEdit).Focused) then showmessage(c.Name); end; end;
循环容器中的可视化控件,判断Focused属性,为真就表示光标在这个控件上,相应的就取得控件名称
var con: TWinControl; p: TPoint; begin GetCursorPos(p); con := FindVCLWindow(point(p.x, p.y)); Caption := con.Name; end;
GetWindowText 如果控件有标题或文本返回标题或文本,没有则返回控件名称
c:TControl;
i:integer;
begin
edit1.Focused;
for i:=0 to self.ControlCount-1 do
begin
c:=self.Controls[i];
if (c.ClassName='TEdit') and ((c as TEdit).Focused) then
showmessage(c.Name); end;
end;
var
con: TWinControl;
p: TPoint;
begin
GetCursorPos(p);
con := FindVCLWindow(point(p.x, p.y));
Caption := con.Name;
end;