📄 delclass.sct
字号:
CLASS_USER1
unit CLASS_NAME;
interface
CLASS_USER2
CLASS_USER3
uses SysUtils, Messages, Classes [, BASE_CLASS ] [, ASSOCIATION_ONE_CLASS ][, AGGREGATION_ONE_CLASS ][, ASSOCIATION_MANY_CLASS ][, AGGREGATION_MANY_CLASS ][,INCLUDE_FILE ] ;
type
T$CLASS_NAME = class [(T$BASE_CLASS)]
private
SELECT_WHEN ATTRIBUTE_ACCESS == private [COLUMN_TAB(4) F$ATTRIBUTE_NAME : ATTRIBUTE_TYPE ; ]
[COLUMN_TAB(4) ASSOCIATION_ONE_NAME : T$ASSOCIATION_ONE_CLASS ; {1:1 Association Field }]
[COLUMN_TAB(4) AGGREGATION_ONE_NAME : T$AGGREGATION_ONE_CLASS ; {1:1 Aggregation Part Field}]
[COLUMN_TAB(4) ASSOCIATION_MANY_NAME : TList ; {1:Many Association Field} ]
[COLUMN_TAB(4) AGGREGATION_MANY_NAME : TList ; {1:Many Aggregation Part Field} ]
SELECT_WHEN OPERATION_ACCESS == private LOGICAL_AND OPERATION_IS_PROCEDURE [
procedure OPERATION_NAME PASCAL_OPERATION_PARAMETERS_WITH_VAR ; PASCAL_OPERATION_VIRTUAL PASCAL_OPERATION_ABSTRACT PASCAL_OPERATION_OVERRIDE PASCAL_OPERATION_MESSAGE]
SELECT_WHEN OPERATION_ACCESS == private LOGICAL_AND OPERATION_IS_FUNCTION [
function OPERATION_NAME PASCAL_OPERATION_PARAMETERS PASCAL_OPERATION_RETURN_TYPE ; PASCAL_OPERATION_VIRTUAL PASCAL_OPERATION_ABSTRACT PASCAL_OPERATION_OVERRIDE]
protected
SELECT_WHEN ATTRIBUTE_ACCESS == protected
[COLUMN_TAB(4) F$ATTRIBUTE_NAME : ATTRIBUTE_TYPE ; ]
SELECT_WHEN OPERATION_ACCESS == protected LOGICAL_AND OPERATION_IS_PROCEDURE [
procedure OPERATION_NAME PASCAL_OPERATION_PARAMETERS_WITH_VAR ; PASCAL_OPERATION_VIRTUAL PASCAL_OPERATION_ABSTRACT PASCAL_OPERATION_OVERRIDE PASCAL_OPERATION_MESSAGE]
SELECT_WHEN OPERATION_ACCESS == protected LOGICAL_AND OPERATION_IS_FUNCTION [
function OPERATION_NAME PASCAL_OPERATION_PARAMETERS PASCAL_OPERATION_RETURN_TYPE ; PASCAL_OPERATION_VIRTUAL PASCAL_OPERATION_ABSTRACT PASCAL_OPERATION_OVERRIDE]
[ function Get$ATTRIBUTE_NAME : ATTRIBUTE_TYPE; {Get Accessor Function }]
[ procedure Set$ATTRIBUTE_NAME ( a$ATTRIBUTE_NAME : ATTRIBUTE_TYPE ); {Set Accessor Procedure }]
published
SELECT_WHEN ATTRIBUTE_ACCESS == published [COLUMN_TAB(4) F$ATTRIBUTE_NAME : ATTRIBUTE_TYPE ; ]
SELECT_WHEN OPERATION_ACCESS == published LOGICAL_AND OPERATION_IS_PROCEDURE [
procedure OPERATION_NAME PASCAL_OPERATION_PARAMETERS_WITH_VAR ; PASCAL_OPERATION_VIRTUAL PASCAL_OPERATION_ABSTRACT PASCAL_OPERATION_OVERRIDE PASCAL_OPERATION_MESSAGE]
SELECT_WHEN OPERATION_ACCESS == published LOGICAL_AND OPERATION_IS_FUNCTION [
function OPERATION_NAME PASCAL_OPERATION_PARAMETERS PASCAL_OPERATION_RETURN_TYPE ; PASCAL_OPERATION_VIRTUAL PASCAL_OPERATION_ABSTRACT PASCAL_OPERATION_OVERRIDE]
public
SELECT_WHEN ATTRIBUTE_ACCESS == public [COLUMN_TAB(4) F$ATTRIBUTE_NAME : ATTRIBUTE_TYPE ; ]
SELECT_WHEN OPERATION_ACCESS == public LOGICAL_AND OPERATION_IS_PROCEDURE [
procedure OPERATION_NAME PASCAL_OPERATION_PARAMETERS_WITH_VAR ; PASCAL_OPERATION_VIRTUAL PASCAL_OPERATION_ABSTRACT PASCAL_OPERATION_OVERRIDE PASCAL_OPERATION_MESSAGE]
SELECT_WHEN OPERATION_ACCESS == public LOGICAL_AND OPERATION_IS_FUNCTION [
function OPERATION_NAME PASCAL_OPERATION_PARAMETERS PASCAL_OPERATION_RETURN_TYPE ; PASCAL_OPERATION_VIRTUAL PASCAL_OPERATION_ABSTRACT PASCAL_OPERATION_OVERRIDE]
constructor Create; virtual; { override; replace virtual with override in derived classes }
destructor Destroy ; override;
SELECT_WHEN ATTRIBUTE_IS_READ_PROPERTY LOGICAL_AND ATTRIBUTE_IS_WRITE_PROPERTY [
property ATTRIBUTE_NAME : ATTRIBUTE_TYPE read Get$ATTRIBUTE_NAME write Set$ATTRIBUTE_NAME ;]
SELECT_WHEN ATTRIBUTE_IS_READ_PROPERTY LOGICAL_AND LOGICAL_NOT ATTRIBUTE_IS_WRITE_PROPERTY [
property ATTRIBUTE_NAME : ATTRIBUTE_TYPE read Get$ATTRIBUTE_NAME;]
SELECT_WHEN ATTRIBUTE_IS_WRITE_PROPERTY LOGICAL_AND LOGICAL_NOT ATTRIBUTE_IS_READ_PROPERTY [
property ATTRIBUTE_NAME : ATTRIBUTE_TYPE write Set$ATTRIBUTE_NAME ;]
[ procedure Set$ASSOCIATION_ONE_CLASS ( a$ASSOCIATION_ONE_CLASS : T$ASSOCIATION_ONE_CLASS ) ; {Set Accessor Procedure for 1:1 Association}]
[ function Get$ASSOCIATION_ONE_CLASS : T$ASSOCIATION_ONE_CLASS ; {Get Assessor Function for 1:1 Association} ]
[ procedure Remove$ASSOCIATION_ONE_CLASS ;]
[ procedure Add$ASSOCIATION_MANY_CLASS ( a$ASSOCIATION_MANY_CLASS : T$ASSOCIATION_MANY_CLASS ) ;]
[ function Get$ASSOCIATION_MANY_CLASS ( Index : Integer ) : T$ASSOCIATION_MANY_CLASS ;{Get Assessor Function for 1:Many Association}]
[ procedure Remove$ASSOCIATION_MANY_CLASS ( a$ASSOCIATION_MANY_CLASS : T$ASSOCIATION_MANY_CLASS ) ;]
end;
implementation
{-----------------------------------------------------------------------------------------------}
constructor T$CLASS_NAME$.Create; {Association Objects Must be Created by Caller}
[NO_REPEAT var
AGGREGATION_MANY_NAME$Index : Integer;]
begin
inherited Create ;
[ F$ATTRIBUTE_NAME := ATTRIBUTE_INITIAL_VALUE; ]
[ ASSOCIATION_ONE_NAME := nil; {Caller must create ASSOCIATION_ONE_CLASS } ]
[ AGGREGATION_ONE_NAME := T$AGGREGATION_ONE_CLASS$.Create;{Create 1:1 Aggregation Part Object}]
[ ASSOCIATION_MANY_NAME := TList$.Create;{Create List Object for 1:1 Association Objects} ]
[ AGGREGATION_MANY_NAME := TList$.Create; {Create List Object for 1:1 Aggregation Part Objects}
for AGGREGATION_MANY_NAME$Index := 1 to 2 do {Update 2 with the number of AGGREGATION_MANY_CLASS$'s }
AGGREGATION_MANY_NAME.Add (T$AGGREGATION_MANY_CLASS$.Create);{Create AGGREGATION_MANY_CLASS objects}]
end;
{-----------------------------------------------------------------------------------------------}
destructor T$CLASS_NAME$.Destroy ;
[NO_REPEAT var
AGGREGATION_MANY_NAME$Index : Integer;
Temp$AGGREGATION_MANY_NAME : T$AGGREGATION_MANY_CLASS ; ]
begin
[ AGGREGATION_ONE_NAME$.Free; {Frees 1:1 Aggregation Part Object} ]
[ ASSOCIATION_MANY_NAME$.Free; {Frees 1:Many Association List-caller must free Association objects} ]
[ for AGGREGATION_MANY_NAME$Index := 1 to AGGREGATION_MANY_NAME$.Count do
begin
Temp$AGGREGATION_MANY_NAME := AGGREGATION_MANY_NAME$.Items LITERAL_SYMBOL[ AGGREGATION_MANY_NAME$Index LITERAL_SYMBOL] ;
Temp$AGGREGATION_MANY_NAME.Free; {Frees 1:Many Aggregation Part Objects}
end;
AGGREGATION_MANY_NAME$.Free;{Frees 1:Many Aggregation List Object} ]
inherited Destroy;
end;
SELECT_WHEN OPERATION_IS_PROCEDURE
[{-----------------------------------------------------------------------------------------------}
procedure T$CLASS_NAME.OPERATION_NAME PASCAL_OPERATION_PARAMETERS_WITH_VAR ;
begin
{ Place code here }
OPERATION_CODE
end;
]
SELECT_WHEN OPERATION_IS_FUNCTION
[{-----------------------------------------------------------------------------------------------}
function T$CLASS_NAME.OPERATION_NAME PASCAL_OPERATION_PARAMETERS PASCAL_OPERATION_RETURN_TYPE ;
begin
{ Place code here and return an object }
OPERATION_CODE
end;
]
[{-----------------------------------------------------------------------------------------------}
function T$CLASS_NAME.Get$ATTRIBUTE_NAME : ATTRIBUTE_TYPE; {Accessor Get Function }
begin
Get$ATTRIBUTE_NAME := F$ATTRIBUTE_NAME;
end;
]
[{-----------------------------------------------------------------------------------------------}
procedure T$CLASS_NAME.Set$ATTRIBUTE_NAME ( a$ATTRIBUTE_NAME : ATTRIBUTE_TYPE ); {Accessor Set Procedure }
begin
F$ATTRIBUTE_NAME := a$ATTRIBUTE_NAME;
end;
]
[{-----------------------------------------------------------------------------------------------}
procedure T$CLASS_NAME$.Set$ASSOCIATION_ONE_CLASS ( a$ASSOCIATION_ONE_CLASS : T$ASSOCIATION_ONE_CLASS );
begin
ASSOCIATION_ONE_NAME := a$ASSOCIATION_ONE_CLASS ;
end;
]
[{-----------------------------------------------------------------------------------------------}
function T$CLASS_NAME$.Get$ASSOCIATION_ONE_CLASS ( ) : T$ASSOCIATION_ONE_CLASS ;
begin
Get$ASSOCIATION_ONE_CLASS := ASSOCIATION_ONE_NAME;
end;
]
[{-----------------------------------------------------------------------------------------------}
procedure T$CLASS_NAME$.Remove$ASSOCIATION_ONE_CLASS ;
begin
ASSOCIATION_ONE_NAME := nil;
end;
]
[{-----------------------------------------------------------------------------------------------}
procedure T$CLASS_NAME$.Add$ASSOCIATION_MANY_CLASS ( a$ASSOCIATION_MANY_CLASS : T$ASSOCIATION_MANY_CLASS );
begin {Caller must create a$ASSOCIATION_MANY_CLASS }
ASSOCIATION_MANY_NAME.Add (a$ASSOCIATION_MANY_CLASS) ;
end;
]
[{-----------------------------------------------------------------------------------------------}
function T$CLASS_NAME$.Get$ASSOCIATION_MANY_CLASS (Index : Integer ) : T$ASSOCIATION_MANY_CLASS ;
begin
Get$ASSOCIATION_MANY_CLASS := ASSOCIATION_MANY_NAME.Items LITERAL_SYMBOL[Index LITERAL_SYMBOL];
end;
]
[{-----------------------------------------------------------------------------------------------}
procedure T$CLASS_NAME$.Remove$ASSOCIATION_MANY_CLASS ( a$ASSOCIATION_MANY_CLASS : T$ASSOCIATION_MANY_CLASS );
begin { Caller must free a$ASSOCIATION_MANY_CLASS }
ASSOCIATION_MANY_NAME.Remove (a$ASSOCIATION_MANY_CLASS) ; {Caller must free a$ASSOCIATION_MANY_CLASS }
end;
]
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -