コンポーネントの動的生成

フォームに貼り付けたボタンクリックイベントで、エディットボックスを動的に生成、破棄します。


使用コンポーネント
TButton


//生成
procedure TForm1.Button1Click(Sender: TObject);
var
 NewED: TEdit;
 i, k: Integer;
begin
 k := 0;
 for i := 1 to 20 do
 begin
  inc(k);
  if FindComponent('ED_' + IntToStr(k)) <> Nil then
   continue;
  NewED := TEdit.Create(Self);
  with NewED do
  begin
   Name := 'ED_' + IntToStr(k);
   Parent := Self;
   Text := '動的生成';
   Autosize := False;
   Top := k * 15;
   Left := k * 15;
  end;
 end;
end;

//破棄
procedure TForm1.Button2Click(Sender: TObject);
var
 i: integer;
begin
 for i := (ComponentCount-1) downto 0 do
 begin
  if (Components[i] is TEdit) then
  begin
   Components[i].free;
  end;
 end;
end;