label控件无法获取焦点,但是 可以 把鼠标 移动过去
比如 自己动态 绘制的 房间 信息 ,如果 房间很多 ,找 房间 很难找,有了这个 函数 搜索房间号 就可以了。
下面就是 按照 房间号 去 遍历 ,并将 鼠标光标 移动到 指定 房间控件上
procedure SearchReport(v: string);
var
i, j, k: integer;
r: TPoint;
begin
if Length(v) >= 2 then
begin
for i := 0 to Self.ComponentCount - 1 do
begin
if Components[i] is TLabel then
begin
if ufun.posex(v, (Components[i] as TLabel).Caption) > 0 then
begin
// (Components[i] as TSpeedButton).Click;
r := (Components[i] as TLabel).ClientOrigin;
if r.Y > Self.Height then
begin
SbModule.VertScrollBar.Position := sbModule.VertScrollBar.Position + abs(r.Y-Self.Height);
r.Y := Self.Height;
end
else
if r.Y < 0 then
begin
SbModule.VertScrollBar.Position := sbModule.VertScrollBar.Position - abs(r.Y-Self.Height);
r.Y := 0;
end;
SetCursorPos(r.x,r.y);
break;
end;
end;
end;
end;
end;