Delphi类引用示例
1、打开Delphi7集成开发环境,在默认工程的Form1窗体上,一个RadioGroup控件。

2、在implementation中声明净霜珠TControlClass的变量,在Form1的Object Inspector中对Form1的OnCreate方法进行编写,代码如下:
implementation
{$R *.dfm}
var
CtlClassRef: TControlClass;
procedure TForm1.FormCreate(Sender: TObject);
begin
RadioGroup1.Width := 400;
RadioGroup1.Columns := 3;
RadioGroup1.Items.Add('Button');
RadioGroup1.Items.Add('Edit');
RadioGroup1.Items.Add('Checkbox');
RadioGroup1.ItemIndex := 0;
CtlClassRef := TButton;
end;

3、F9运行程序,可以看到程序的RadioGroup多了三个RadioButton项

4、双击RadioGroup1,进入OnClick事件方法,写如下代码:
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: CtlClassRef := TButton;
1: CtlClassRef := TEdit;
2: CtlClassRef := TCheckBox;
end;
end;

5、在Form1的Object Inspector中对Form1的OnMouseDown事件方法进行编写,代码如下:返侧
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
NewCtrl: TControl;
begin
NewCtrl := CtlClassRef.Create(Self);
NewCtrl.Name := CtlClassRef.ClassName + IntToStr(Self.ControlCount);
NewCtrl.Parent := Self;
NewCtrl.Left := X;
NewCtrl.Top := Y;
end;
创建CtlClassRef引用的控件。

6、F5运行程序,选择RadioGroup中的RadioButton,再晃处在窗体点击鼠标,会多出相应的控件。
