📄 unit3.pas
字号:
//------------------------------------------
// Factory Method模式下的动态控件创建 V2.0
// 界面单元(TForm1)
// 刘艺 2003/02/26
//-------------------------------------------
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls;
type
TControlClass =class of TControl;
TForm1 = class(TForm)
RadioGroup1: TRadioGroup;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
uses Unit4;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
const
ContrlClassArry:array[0..2] of TControlClass=(TMonthCalendar,TMemo,TColorBox);
var
i:integer;
ControlObj:TObject;
begin
//清理对象
for i:=0 to controlcount-1 do
if (Controls[i] is TMonthCalendar) or (Controls[i] is TMemo)
or (Controls[i] is TColorBox) then
Controls[i].Free;
//创建对象
ControlObj:=TControlFactory.create(self,ContrlClassArry[RadioGroup1.ItemIndex]);
label1.Caption:=ControlObj.ClassName;
//测试对象
if (ControlObj is TMemo) then TMemo(ControlObj).Lines.Add('测试成功!') ;
if (ControlObj is TColorBox) then TColorBox(ControlObj).ItemIndex:=2 ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -