InfoForm.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit InfoForm;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  5.   StdCtrls, ExtCtrls, Buttons, Grids, Menus;
  6. type
  7.   TForm1 = class(TForm)
  8.     ListParent: TListBox;
  9.     Label1: TLabel;
  10.     EditInfo: TEdit;
  11.     Label2: TLabel;
  12.     Label3: TLabel;
  13.     Panel1: TPanel;
  14.     ListClasses: TListBox;
  15.     procedure FormCreate(Sender: TObject);
  16.     procedure ListClassesClick(Sender: TObject);
  17.   private
  18.     ClassArray: array of TClass;
  19.   public
  20.     { Public declarations }
  21.   end;
  22. var
  23.   Form1: TForm1;
  24. implementation
  25. {$R *.DFM}
  26. procedure TForm1.FormCreate(Sender: TObject);
  27. var
  28.   I: Integer;
  29. begin
  30.   SetLength (ClassArray, 50);
  31.   ClassArray [0] := TButton;
  32.   ClassArray [1] := TBitBtn;   
  33.   ClassArray [2] := TEdit;
  34.   ClassArray [3] := TPopupMenu;
  35.   ClassArray [4] := TRadioButton;
  36.   ClassArray [5] := TRadioGroup;
  37.   ClassArray [6] := TPanel;
  38.   ClassArray [7] := TCheckBox;
  39.   ClassArray [8] := TForm;
  40.   ClassArray [9] := TComboBox;
  41.   ClassArray [10] := TGroupBox;
  42.   ClassArray [11] := TSpeedButton;
  43.   ClassArray [12] := TLabel;
  44.   ClassArray [13] := TListBox;
  45.   ClassArray [14] := TMainMenu;
  46.   ClassArray [15] := TMemo;
  47.   // copy class names to the listbox
  48.   for I := 0 to 15 do
  49.     ListClasses.Items.Add (ClassArray [I].ClassName);
  50.   // select the first class
  51.   ListClasses.ItemIndex := 0;
  52.   // show initial information
  53.   ListClassesClick (Sender);
  54. end;
  55. procedure TForm1.ListClassesClick(Sender: TObject);
  56. var
  57.   MyClass: TClass;
  58. begin
  59.   MyClass := ClassArray [ListClasses.ItemIndex];
  60.   EditInfo.Text := Format ('Name: %s - Size: %d bytes',
  61.     [MyClass.ClassName, MyClass.InstanceSize]);
  62.   with ListParent.Items do
  63.   begin
  64.     Clear;
  65.     while MyClass.ClassParent <> nil do
  66.     begin
  67.       MyClass := MyClass.ClassParent;
  68.       Add (MyClass.ClassName);
  69.     end;
  70.   end;
  71. end;
  72. end.