unit Unit2;

interface

uses

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

end

end