fpc/tests/tbs/tb0300.pp
2000-11-30 22:38:14 +00:00

205 lines
4.4 KiB
ObjectPascal

{$Mode objfpc}
{
This unit introduces some basic classes as they are defined in Delphi.
These classes should be source compatible to their Delphi counterparts:
TPersistent
TComponent
}
Unit tb0300;
{$M+}
Interface
Type
{ ---------------------------------------------------------------------
Forward Declarations.
---------------------------------------------------------------------}
TComponent = Class;
TFiler = Class;
TPersistent = Class;
{ ---------------------------------------------------------------------
TFiler
---------------------------------------------------------------------}
TFiler = Class (TObject)
Protected
FAncestor : TComponent;
FIgnoreChildren : Boolean;
FRoot : TComponent;
Private
Public
Published
{ Methods }
Constructor Create {(Stream : TStream; BufSize : Longint) };
Destructor Destroy; override;
Procedure FlushBuffer; virtual; abstract;
{ Properties }
Property Root : TComponent Read FRoot Write FRoot;
Property Ancestor : TComponent Read FAncestor Write FAncestor;
Property IgnoreChildren : Boolean Read FIgnoreChildren Write FIgnoreChildren;
end;
{ ---------------------------------------------------------------------
TPersistent
---------------------------------------------------------------------}
TPersistent = Class (TObject)
Private
Procedure AssignError (Source : TPersistent);
Protected
Procedure AssignTo (Dest : TPersistent);
Procedure DefineProperties (Filer : TFiler); Virtual;
Public
{ Methods }
Destructor Destroy; Override;
Procedure Assign (Source : TPersistent); virtual;
Published
end;
{ ---------------------------------------------------------------------
TComponent
---------------------------------------------------------------------}
TComponentState = Set of ( csLoading, csReading, CsWriting, csDestroying,
csDesigning, csAncestor, csUpdating, csFixups );
TComponentStyle = set of ( csInheritable,csCheckPropAvail );
TComponentName = String;
TComponent = Class (TPersistent)
Protected
FComponentState : TComponentState;
FComponentStyle : TComponentStyle;
FName : TComponentName;
FOwner : TComponent;
Function GetComponent (Index : Longint) : TComponent;
Function GetComponentCount : Longint;
Function GetComponentIndex : Longint;
Procedure SetComponentIndex (Value : Longint);
Procedure Setname (Value : TComponentName);
Private
Public
{ Methods }
{ Properties }
Property ComponentCount : Longint Read GetComponentCount; { RO }
Property ComponentIndex : Longint Read GetComponentIndex write SetComponentIndex; { R/W }
// Property Components [Index : LongInt] : TComponent Read GetComponent; { R0 }
Property ComponentState : TComponentState Read FComponentState; { RO }
Property ComponentStyle : TcomponentStyle Read FComponentStyle; { RO }
Property Owner : TComponent Read Fowner; { RO }
Published
Property Name : TComponentName Read FName Write Setname;
end;
Implementation
{ ---------------------------------------------------------------------
TComponent
---------------------------------------------------------------------}
Function TComponent.GetComponent (Index : Longint) : TComponent;
begin
end;
Function TComponent.GetComponentCount : Longint;
begin
end;
Function TComponent.GetComponentIndex : Longint;
begin
end;
Procedure TComponent.SetComponentIndex (Value : Longint);
begin
end;
Procedure TComponent.Setname (Value : TComponentName);
begin
end;
{ ---------------------------------------------------------------------
TFiler
---------------------------------------------------------------------}
Constructor TFiler.Create {(Stream : TStream; BufSize : Longint) };
begin
end;
Destructor TFiler.Destroy;
begin
end;
{ ---------------------------------------------------------------------
TPersistent
---------------------------------------------------------------------}
Procedure TPersistent.AssignError (Source : TPersistent);
begin
end;
Procedure TPersistent.AssignTo (Dest : TPersistent);
begin
end;
Procedure TPersistent.DefineProperties (Filer : TFiler);
begin
end;
Destructor TPersistent.Destroy;
begin
end;
Procedure TPersistent.Assign (Source : TPersistent);
begin
end;
end.