unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons;type TinfoForm = class(TForm) Label3: TLabel; ListClasses: TListBox; Panel1: TPanel; Label1: TLabel; Label2: TLabel; ListParent: TListBox; EditInfo: TEdit; procedure FormCreate(Sender: TObject); procedure ListClassesClick(Sender: TObject); private ClassArray: array of TClass; public { Public declarations } end;var infoForm: TinfoForm;implementation{$R *.dfm}procedure TinfoForm.FormCreate(Sender: TObject);var i: Integer;begin SetLength(ClassArray,50); ClassArray [0] := TButton; ClassArray [1] := TBitBtn; ClassArray [2] := TEdit; ClassArray [3] := TSpeedbutton; ClassArray [4] := TRadioButton; ClassArray [5] := TRadioGroup; ClassArray [6] := TPanel; ClassArray [7] := TCheckBox; ClassArray [8] := TForm; ClassArray [9] := TComboBox; ClassArray [10] := TGroupBox; ClassArray [11] := TSpeedButton; ClassArray [12] := TLabel; ClassArray [13] := TListBox; ClassArray [14] := TMemo; for I := 0 to 15 do ListClasses.Items.Add(ClassArray[i].ClassName); ListClasses.ItemIndex := 0; ListClassesClick(nil);end;procedure TinfoForm.ListClassesClick(Sender: TObject);var MyClass: TClass;begin MyClass := ClassArray[ListClasses.ItemIndex]; EditInfo.Text := Format('Name:%s - Size:%d',[MyClass.ClassName,MyClass.InstanceSize]); ListParent.Clear; with ListParent.Items do begin while MyClass.ClassParent <> nil do begin MyClass := MyClass.ClassParent; Add(MyClass.ClassName); end; end;end;end.
object infoForm: TinfoForm Left = 0 Top = 0 Caption = 'infoForm' ClientHeight = 202 ClientWidth = 383 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object Label3: TLabel Left = 8 Top = 8 Width = 55 Height = 13 Caption = 'Class Name' end object ListClasses: TListBox Left = 8 Top = 24 Width = 153 Height = 177 ItemHeight = 13 TabOrder = 0 OnClick = ListClassesClick end object Panel1: TPanel Left = 168 Top = 8 Width = 209 Height = 193 Caption = 'Panel1' TabOrder = 1 object Label1: TLabel Left = 8 Top = 48 Width = 62 Height = 13 Caption = 'Base Classes' end object Label2: TLabel Left = 8 Top = 8 Width = 25 Height = 13 Caption = 'Class' end object ListParent: TListBox Left = 8 Top = 64 Width = 193 Height = 121 ItemHeight = 13 TabOrder = 0 end object EditInfo: TEdit Left = 8 Top = 24 Width = 193 Height = 21 ReadOnly = True TabOrder = 1 end endend