【发布时间】:2009-11-12 12:32:10
【问题描述】:
如何在 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;
编译器在这种情况下不允许强制转换。有什么想法吗?
我使用的是 Delphi 2007。
【问题讨论】:
-
stackoverflow.com/questions/1083087/… 的可能重复项 - 我不确定,因为我不能 100% 确定我理解您要做什么。
-
为什么调用参数ComponentClass,却是TControlClass类型?参数不应该改为ControlClass吗?
-
@Harriv:这样的编辑有点不幸,因为以后很难说为什么答案使用了不同的(更糟糕的)命名方案。我完全同意 Jeroen 的观点(如果你也这样做,你也应该支持他的评论),但是这个编辑可能应该被回滚。您还引入了另一个错误。