デルファイは、どのように動的に(解放)作成したワンタイムダイナミックないくつかのコンポーネントを削除するには?

例えばTForm1.Button1Click手順(送信者:TObjectを);
VAR
I:整数;
LBL:TLabel;
始める
私のために:。= 3. 1が実行する
開始
LBLを:= TLabel.Create(応用);
lbl.Parent:=自己;
lbl.Caption := 'LBL' + IntToStr(I);
lbl.Top:= 175;
lbl.Height:= 75;
lbl.Width:= 75;
lbl.Left = I + 10 * lbl.Width;
END;
動的に生成3コントロールが、同じイベントで(つまり、それを解放された!)それを再度、それらのすべてを削除する(してからボタンをタップする)どのように?

-------------------------------------------------- ------

配列は、後に解放するために、動的に生成されたこれらのポインタを維持します。

ユニットUnit1は、

インタフェースが

使用
Windowsの、メッセージ、sysutilsの、変異体、クラス、グラフィックス、コントロール、フォーム、
;ダイアログ、StdCtrls

入力
TForm1 =クラス(TFormは)
ボタン1:のTButton;
手順Button1Click(送信者:TObjectを);
プライベート
{プライベート宣言を}
IsLableCreated :ブール;
ラベル:配列[0..2] TLabelの、
公共
{パブリック宣言}
END;

VAR
をForm1:TForm1;

実施

{$のR&LT *} DFM

手順TForm1.Button1Click(送信者:TObjectを);
VAR
I:整数。
開始
IsLableCreatedされていない場合、その後
始まる
行う2 = 0:Iのために
開始
ラベル[I]:= TLabel.Create(セルフ);
ラベル[I]はやると
始まる
親:=自己を。
キャプション:= 'ラベル' + IntToStr(I);
トップ:= 175;
幅:= 75;
身長:= 75;
左:=私は幅10 *;
終わり;
IsLableCreated:=真;
終わり;
終了

始める
私のために:2が行う= 0に
ラベル[I] .Freeを。
IsLableCreated:= falseは、
終わり;
終わり;

終わり。

-------------------------------------------------- --------

グローバルセットブール変数  をタップし、その値を変更
するvar
bnil:falseに=ブール値を、
手順TForm1.Button1Click(送信者:TObjectを);
始める
のIF bnil =その後、falseに
//コントロールをビルドし
bnil:=真; //は、値の変更
、他を//すなわち、 =真bnilへ;
//リリース
終わり。

おすすめ

転載: www.cnblogs.com/jijm123/p/11009022.html