mo nanya lagi nih... orang2 yang yang mengerti delphi bisa bantuin..help

ada latihan gini nih programnya... tolong y ...
====================================================================================
unit SimpleProp;
interface
uses
Windows, Messages, SysUtils, Classes;
type
TSimpleProp = class(TComponent)
private
FPropChar: char;
FPropInteger: Integer;
FPropString: string;
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
published
property PropInteger : Integer read FPropInteger write FPropInteger;
property PropString : string read FPropString write FPropString;
property PropChar : char read FPropChar write FPropChar;
{ Published declarations }
end;
TEnum = (eNol,eSatu,eDua,eTiga); TEnumProp = class(TComponent)
private
FPropBool: Boolean;
FPropEnum: TEnum;
published
property PropEnum : TEnum read FPropEnum write FPropEnum;
property PropBool : Boolean read FPropBool write FPropBool;
end;
TSetPropOption = (oNol,oSatu,oDua,oTiga);
TSetPropOptions = set of TSetPropOption; TSetProp = class(TComponent)
private
FOptions: TSetPropOptions;
published
property Options : TSetPropOptions read FOptions write FOptions;
end;
TSomeObject = class(TPersistent) private
FProp1: integer;
FProp2: string;
public
procedure Assign(Source:TPersistent);
override; published
property Prop1 : integer read FProp1 write FProp1;
property Prop2 : string read FProp2 write FProp2;
end;
TObjectProp = class(TComponent)
private
FSomeObject: TSomeObject;
public
constructor Create(AOwner:TComponent);override;
destructor Destroy;override; published
property SomeObject : TSomeObject read FSomeObject write FSomeObject;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('2006130004', [TObjectProp,TSetProp,TEnumProp,TSimpleProp]);end;
{ TSomeObject }
procedure TSomeObject.Assign(Source: TPersistent);
begin
if Source is TSomeObject then
begin
FProp1 := TSomeObject(Source).Prop1;
FProp2 := TSomeObject(Source).Prop2;
inherited Assign(Source);
end;
end;
{ TObjectProp }
constructor TObjectProp.Create(AOwner: TComponent);
begin
inherited;
FSomeObject := TSomeObject.Create;
end;
destructor TObjectProp.Destroy;
begin
FSomeObject.Free;
inherited;
end;
end.
====================================================================================
daftar pertanyaan nya:

a. TEnim (enol,esatu, )...diatas knapa pake(enol,esatu...)?kya parameter y? ato mak kudu pke ada parameternya y??
b.TsetPropOption pake = set of TsetProp option itu knapa y perlu diset dulu

c.class Tpersistent itu untuk apa y??soalnya kebanyakan pake class component,button dll hehehe
d.destructor itu fungsinya buat apa y??
e.kenapa di bagian register arraynya yang class T persistent Tsome Object gak di ikut ditambah di array y??
dah segitu aja dulu untuk sekarang...hehehe kemaren ga sempet nanya diklas..telat mulu juga soalnya datangnya..hahahaha