如何在Delphi中执行此操作:
procedure ToggleVisibility(ControlClass : TControlClass);
var
i : integer;
begin
for i := 0 to ComponentCount - 1 do
if Components[i] is ControlClass then
ControlClass(Components[i]).Visible := not Control(Components[i]).Visible;
end;
Run Code Online (Sandbox Code Playgroud)
在这种情况下,编译器不允许强制转换.有任何想法吗?
我正在使用Delphi 2007.
mgh*_*hie 10
由于组件是a TControl
或者后代,因此必须强制转换为TControl
:
procedure ToggleVisibility(ComponentClass : TControlClass);
var
i : integer;
begin
for i := 0 to ComponentCount - 1 do begin
if Components[i] is ComponentClass then
TControl(Components[i]).Visible := not TControl(Components[i]).Visible;
end;
end;
Run Code Online (Sandbox Code Playgroud)