動的なビジュアルコンポーネントの生成

TComponent.Create(AOwner: TComponent) メソッドで AOwner にコンポーネントを貼り付けたいフォームなどを指定して、TComponent.Parent プロパティを同じくフォームなどに設定すれば、デフォルトのプロパティ値でコンポーネントが作成され、フォームに表示されます。

ex. フォーム Form1 上をクリックする度に、TMemoコンポーネントが現れる。

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
    m: TMemo;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm2.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  m := TMemo.Create(Form2);
  m.Parent := Form2;
  m.Left := X;
  m.Top := Y;
end;

end.