• 关于类的入门的例子(6): 类引用示例


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;
    
    type
      TForm1 = class(TForm)
        RadioGroup1: TRadioGroup;
        procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
          Shift: TShiftState; X, Y: Integer);
        procedure FormCreate(Sender: TObject);
        procedure RadioGroup1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    var
      ClassRef: TControlClass;  //TControlClass 是 TControl 的类引用
    
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      RadioGroup1.Width := 300;
      RadioGroup1.Columns := 3;
      RadioGroup1.Items.Add('Button');
      RadioGroup1.Items.Add('Edit');
      RadioGroup1.Items.Add('Lable');
    
      RadioGroup1.ItemIndex := 0;
      ClassRef := TButton;
    end;
    
    procedure TForm1.RadioGroup1Click(Sender: TObject);
    begin
      case RadioGroup1.ItemIndex of
        0: ClassRef := TButton;
        1: ClassRef := TEdit;
        2: ClassRef := TLabel;
      end;
    end;
    
    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var
      NewCtrl: TControl;
    begin
      NewCtrl := ClassRef.Create(Self);
      NewCtrl.Name := ClassRef.ClassName + IntToStr(Self.ControlCount);
      NewCtrl.Parent := Self;
      NewCtrl.Left := X;
      NewCtrl.Top := Y;
    end;
    
    end.
    
  • 相关阅读:
    【NX二次开发】Block UI 多行字符串
    【NX二次开发】Block UI 字符串
    【NX二次开发】Block UI 枚举
    【NX二次开发】Block UI 切换开关
    Css
    禁止多行文本框textarea拖拽
    HTML5+Css3-webkit-filter
    Google Chrome一些小技巧
    js获取节点
    getAttribute:取得属性; setAttribute:设置属性。
  • 原文地址:https://www.cnblogs.com/del/p/1003289.html
Copyright © 2020-2023  润新知