1
0
mirror of https://github.com/moparisthebest/Simba synced 2024-12-26 01:09:08 -05:00
Simba/trunk/Units/PascalScript/uPSC_std.pas
2010-01-26 04:47:07 +00:00

88 lines
2.6 KiB
ObjectPascal
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ Compiletime TObject, TPersistent and TComponent definitions }
unit uPSC_std;
{$I PascalScript.inc}
interface
uses
uPSCompiler, uPSUtils;
{
Will register files from:
System
Classes (Only TComponent and TPersistent)
}
procedure SIRegister_Std_TypesAndConsts(Cl: TPSPascalCompiler);
procedure SIRegisterTObject(CL: TPSPascalCompiler);
procedure SIRegisterTPersistent(Cl: TPSPascalCompiler);
procedure SIRegisterTComponent(Cl: TPSPascalCompiler);
procedure SIRegister_Std(Cl: TPSPascalCompiler);
implementation
procedure SIRegisterTObject(CL: TPSPascalCompiler);
begin
with Cl.AddClassN(nil, 'TObject') do
begin
RegisterMethod('constructor Create');
RegisterMethod('procedure Free');
end;
end;
procedure SIRegisterTPersistent(Cl: TPSPascalCompiler);
begin
with Cl.AddClassN(cl.FindClass('TObject'), 'TPersistent') do
begin
RegisterMethod('procedure Assign(Source: TPersistent)');
end;
end;
procedure SIRegisterTComponent(Cl: TPSPascalCompiler);
begin
with Cl.AddClassN(cl.FindClass('TPersistent'), 'TComponent') do
begin
RegisterMethod('function FindComponent(AName: String): TComponent;');
RegisterMethod('constructor Create(AOwner: TComponent); virtual;');
RegisterProperty('Owner', 'TComponent', iptRW);
RegisterMethod('procedure DestroyComponents');
RegisterMethod('procedure Destroying');
RegisterMethod('procedure FreeNotification(AComponent:TComponent)');
RegisterMethod('procedure InsertComponent(AComponent:TComponent)');
RegisterMethod('procedure RemoveComponent(AComponent:TComponent)');
RegisterProperty('Components', 'TComponent Integer', iptr);
RegisterProperty('ComponentCount', 'Integer', iptr);
RegisterProperty('ComponentIndex', 'Integer', iptrw);
RegisterProperty('ComponentState', 'Byte', iptr);
RegisterProperty('Designinfo', 'LongInt', iptrw);
RegisterProperty('Name', 'String', iptrw);
RegisterProperty('Tag', 'LongInt', iptrw);
end;
end;
procedure SIRegister_Std_TypesAndConsts(Cl: TPSPascalCompiler);
begin
Cl.AddTypeS('TComponentStateE', '(csLoading, csReading, csWriting, csDestroying, csDesigning, csAncestor, csUpdating, csFixups, csFreeNotification, csInline, csDesignInstance)');
cl.AddTypeS('TComponentState', 'set of TComponentStateE');
Cl.AddTypeS('TRect', 'record Left, Top, Right, Bottom: Integer; end;');
end;
procedure SIRegister_Std(Cl: TPSPascalCompiler);
begin
SIRegister_Std_TypesAndConsts(Cl);
SIRegisterTObject(CL);
SIRegisterTPersistent(Cl);
SIRegisterTComponent(Cl);
end;
// PS_MINIVCL changes by Martijn Laan (mlaan at wintax _dot_ nl)
End.