2016-04-11 10 views
0

TPanelには、TPanelのすべてのオブジェクトを消去する方法がありますか?教えてください。TPanelクリーニング(Lazarus)

たとえば、TPanel(Label.Visible = true)にいくつかのラベルが置かれている場合、メソッドを適用した後、それらは不可視になりました(Label.Visible:= false)。

答えて

0

と右の親を割り当てる必要がありますが、実行時にコントロールを作成する場合は、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; 
+0

はそれは私が必要なものだ、ありがとう! – JohnS

0

もちろんあなたは、可視性を変更します親としてのあなたのパネルを持って

Panel.Visible = false; 

すべての要素を使用することができます。

あなたは彼らに

myLabel.Parent = Panel; 
関連する問題