TPanel 清理(Lazarus)
TPanel cleaning (Lazarus)
请告诉我,TPanel
是否有方法可以清除TPanel
上的所有对象?
例如,如果某些标签被放置在 TPanel
(Label.Visible = true) 上,那么在应用该方法后它们将变得不可见 (Label.Visible: = false)。
当然可以
Panel.Visible = false;
所有以您的面板为父级的元素都会改变可见性。
如果您在运行时创建控件,您应该为它们分配正确的父级
myLabel.Parent = Panel;
您是要销毁 TPanel 上的所有对象还是只需要隐藏?
如果您只需要隐藏面板的所有组件,此代码可能对您有所帮助:
Example of HideAll components of panel
procedure TForm1.chk_Visible_AllChange(Sender: TObject);
var
n: Integer;
cmp : TComponent;
begin
for n:= 0 to ComponentCount-1 do
begin
cmp := Components[n];
if cmp.GetParentComponent=Panel1 then
begin
if cmp is TLabel then
TLabel(cmp).Visible:= chk_Visible_All.Checked;
if cmp is TButton then
TButton(cmp).Visible:= chk_Visible_All.Checked;
if cmp is TMemo then
TMemo(cmp).Visible:= chk_Visible_All.Checked;
if cmp is TGroupBox then
TGroupBox(cmp).Visible:= chk_Visible_All.Checked;
end;
end;
end;
请告诉我,TPanel
是否有方法可以清除TPanel
上的所有对象?
例如,如果某些标签被放置在 TPanel
(Label.Visible = true) 上,那么在应用该方法后它们将变得不可见 (Label.Visible: = false)。
当然可以
Panel.Visible = false;
所有以您的面板为父级的元素都会改变可见性。
如果您在运行时创建控件,您应该为它们分配正确的父级
myLabel.Parent = Panel;
您是要销毁 TPanel 上的所有对象还是只需要隐藏?
如果您只需要隐藏面板的所有组件,此代码可能对您有所帮助:
Example of HideAll components of panel
procedure TForm1.chk_Visible_AllChange(Sender: TObject);
var
n: Integer;
cmp : TComponent;
begin
for n:= 0 to ComponentCount-1 do
begin
cmp := Components[n];
if cmp.GetParentComponent=Panel1 then
begin
if cmp is TLabel then
TLabel(cmp).Visible:= chk_Visible_All.Checked;
if cmp is TButton then
TButton(cmp).Visible:= chk_Visible_All.Checked;
if cmp is TMemo then
TMemo(cmp).Visible:= chk_Visible_All.Checked;
if cmp is TGroupBox then
TGroupBox(cmp).Visible:= chk_Visible_All.Checked;
end;
end;
end;