123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- {$mode objfpc}
- {$h+}
- unit testunit;
- interface
- uses SysUtils, Classes;
- Const
- AnIntegerConst = 1;
- AStringConst = 'Hello, World!';
- AFLoatconst = 1.23;
- ABooleanConst = True;
- ATypedConst : Integer = 3;
- AnArrayConst : Array[1..3] of Integer = (1,2,3);
- ARecordConst : TMethod = (Code:Nil;Data:Nil);
- ASetConst = [true,false];
- ADeprecatedConst = 1 deprecated;
-
- Type
- TAnEnumType = (one,two,three);
- TASetType = Set of TAnEnumType;
- TAnArrayType = Array[1..10] of Integer;
- // TASubRangeType = one..two;
- TABooleanArrayType = Array[Boolean] of Integer;
- TARecordType = Record
- X,Y : Integer;
- Z : String;
- end;
- TAVariantRecordType = Record
- A : String;
- Case Integer of
- 1 : (X,Y : Integer);
- 2 : (phi,Omega : Real);
- end;
- TAVariantRecordType2 = Record
- A : String;
- Case Atype : Integer of
- 1 : (X,Y : Integer);
- 2 : (phi,Omega : Real);
- end;
-
- TADeprecatedType = Integer deprecated;
-
- Var
- ASimpleVar : Integer;
- ATypedVar : TMethod;
- ARecordVar : Record
- A,B : integer;
- end;
- AnArrayVar : Array[1..10] of Integer;
- ATypedArray : Array[TanEnumType] of Integer;
- AInitVar : Integer = 1;
-
- ADeprecatedVar : Integer deprecated;
- ACVarVar : Integer; cvar;
- AnExternalVar : Integer; external name 'avar';
- AnExternalLibVar : Integer; external 'library' name 'avar';
-
- Procedure SimpleProc;
- Procedure OverloadedProc(A : Integer);
- Procedure OverloadedProc(B : String);
- Function SimpleFunc : Integer;
- Function OverloadedFunc(A: Integer) : Integer;
- Function OverloadedFunc(B : String) : Integer;
- Procedure ConstArgProc(Const A : Integer);
- Procedure VarArgProc(Var A : Integer);
- Procedure OutArgProc(Out A : Integer);
- Procedure UntypedVarArgProc(Var A);
- Procedure UntypedConstArgProc(const A);
- Procedure UntypedOutArgProc(Out A);
- Procedure ArrayArgProc (A : TAnArrayType);
- Procedure OpenArrayArgProc(A : Array of string);
- Procedure ConstArrayArgProc(A : Array of const);
- Procedure externalproc; external;
- Procedure externalnameProc; external name 'aname';
- Procedure externallibnameProc; external 'alibrary' name 'aname';
- Type
- { TMyParentClass }
- TMyParentClass = Class(TComponent)
- Private
- FI : Integer;
- function GetA(AIndex : Integer): String;
- function GetIP(AIndex: integer): String;
- procedure SetA(AIndex : Integer; const AValue: String);
- procedure SetIP(AIndex: integer; const AValue: String);
- Procedure WriteI(AI : Integer);
- Function ReadI : Integer;
- Protected
- Procedure AProtectedMethod;
- Property AProtectedProp : Integer Read FI Write FI;
- Public
- Constructor Create(AOwner : TComponent); override;
- Destructor Destroy; override;
- Procedure AVirtualProc; virtual;
- Procedure AnAbstractProc; virtual; abstract;
- Procedure AMessageProc(Var Msg); Message 123;
- Procedure AStringMessageProc(Var Msg); Message '123';
- Procedure ADeprecatedProc; deprecated;
- Procedure APlatformProc; Platform;
- Property IntProp : Integer Read FI Write Fi;
- Property IntROProp : Integer Read FI;
- Property GetIntProp : Integer Read ReadI Write WriteI;
- Property AnArrayProp[AIndex : Integer] : String Read GetA write SetA;
- Property AnIndexProp : String Index 1 Read GetIP Write SetIP;
- Property AnIndexProp2 : String Index 2 Read GetIP Write SetIP;
- Published
- Procedure SomePublishedMethod;
- end;
-
- { TMyChildClass }
- TMyChildClass = Class(TMyParentClass)
- Public
- Procedure AVirtualProc; Override;
- Procedure AnAbstractProc; Override;
- Published
- Property AProtectedProp;
- end;
-
- Implementation
- Procedure SimpleProc;
- begin
- end;
- Procedure OverloadedProc(A : Integer);
- begin
- end;
- Procedure OverloadedProc(B : String);
- begin
- end;
- Function SimpleFunc : Integer;
- begin
- end;
- Function OverloadedFunc(A: Integer) : Integer;
- begin
- end;
- Function OverloadedFunc(B : String) : Integer;
- begin
- end;
- Procedure ArrayArgProc (A : TAnArrayType);
- begin
- end;
- Procedure OpenArrayArgProc(A : Array of string);
- begin
- end;
- Procedure ConstArrayArgProc(A : Array of const);
- begin
- end;
- Procedure ConstArgProc(Const A : Integer);
- begin
- end;
- Procedure VarArgProc(Var A : Integer);
- begin
- end;
- Procedure OutArgProc(Out A : Integer);
- begin
- end;
- Procedure UntypedVarArgProc(Var A);
- begin
- end;
- Procedure UntypedConstArgProc(const A);
- begin
- end;
- Procedure UntypedOutArgProc(Out A);
- begin
- end;
- { TMyChildClass }
- procedure TMyChildClass.AVirtualProc;
- begin
- inherited AVirtualProc;
- end;
- procedure TMyChildClass.AnAbstractProc;
- begin
- // Cannot call ancestor
- end;
- { TMyParentClass }
- procedure TMyParentClass.WriteI(AI: Integer);
- begin
- end;
- function TMyParentClass.GetA(AIndex : Integer): String;
- begin
- end;
- function TMyParentClass.GetIP(AIndex: integer): String;
- begin
- end;
- procedure TMyParentClass.SetA(AIndex : Integer; const AValue: String);
- begin
- end;
- procedure TMyParentClass.SetIP(AIndex: integer; const AValue: String);
- begin
- end;
- function TMyParentClass.ReadI: Integer;
- begin
- end;
- procedure TMyParentClass.AProtectedMethod;
- begin
- end;
- constructor TMyParentClass.Create(AOwner: TComponent);
- begin
- inherited Create(AOwner);
- end;
- destructor TMyParentClass.Destroy;
- begin
- inherited Destroy;
- end;
- procedure TMyParentClass.AVirtualProc;
- begin
- end;
- procedure TMyParentClass.AMessageProc(var Msg);
- begin
- end;
- procedure TMyParentClass.AStringMessageProc(var Msg);
- begin
- end;
- procedure TMyParentClass.ADeprecatedProc;
- begin
- end;
- procedure TMyParentClass.APlatformProc;
- begin
- end;
- procedure TMyParentClass.SomePublishedMethod;
- begin
- end;
- end.
|