Delphi类引用示例
1、打开Delphi7集成开发环境,在默认工程的Form1窗体上,一个RadioGroup控件。
2、在implementation中声明TControlClass的变量,在Form1的Object Insp髫潋啜缅ector中对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,再在窗体点击鼠标,会多出相应的控件。