unit uPSComponent_Default; {$I PascalScript.inc} interface uses SysUtils, Classes, uPSComponent, uPSCompiler, uPSRuntime; type TPSImport_DateUtils = class(TPSPlugin) protected procedure CompOnUses(CompExec: TPSScript); override; procedure ExecOnUses(CompExec: TPSScript); override; end; TPSImport_Classes = class(TPSPlugin) private FEnableStreams: Boolean; FEnableClasses: Boolean; protected procedure CompileImport1(CompExec: TPSScript); override; procedure ExecImport1(CompExec: TPSScript; const ri: TPSRuntimeClassImporter); override; public constructor Create(AOwner: TComponent); override; published property EnableStreams: Boolean read FEnableStreams write FEnableStreams; property EnableClasses: Boolean read FEnableClasses write FEnableClasses; end; TIFPS3CE_Std = class(TPSImport_Classes); TIFPS3CE_DateUtils = class(TPSImport_DateUtils); implementation uses uPSC_std, uPSR_std, uPSC_classes, uPSR_classes, uPSC_dateutils, uPSR_dateutils; { TPSImport_Classes } procedure TPSImport_Classes.CompileImport1(CompExec: TPSScript); begin SIRegister_Std(CompExec.Comp); if FEnableClasses then SIRegister_Classes(CompExec.Comp, FEnableStreams); end; procedure TPSImport_Classes.ExecImport1(CompExec: TPSScript; const ri: TPSRuntimeClassImporter); begin RIRegister_Std(Ri); if FEnableClasses then RIRegister_Classes(ri, FEnableStreams); end; constructor TPSImport_Classes.Create(AOwner: TComponent); begin inherited Create(AOwner); FEnableStreams := True; FEnableClasses := True; end; { TPSImport_DateUtils } procedure TPSImport_DateUtils.CompOnUses(CompExec: TPSScript); begin RegisterDateTimeLibrary_C(CompExec.Comp); end; procedure TPSImport_DateUtils.ExecOnUses(CompExec: TPSScript); begin RegisterDateTimeLibrary_R(CompExec.Exec); end; end.