mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-12 14:29:34 +02:00
95 lines
1.4 KiB
ObjectPascal
95 lines
1.4 KiB
ObjectPascal
{ %norun }
|
|
unit terecs_u1;
|
|
|
|
{$mode delphi}
|
|
|
|
interface
|
|
type
|
|
HWND = integer;
|
|
TFoo = record
|
|
hWnd : HWND;
|
|
private
|
|
F1: Integer;
|
|
F2: Byte;
|
|
public
|
|
type
|
|
TBar = Integer;
|
|
const
|
|
C: TBar = 1;
|
|
var
|
|
F3: TBar;
|
|
F4: Byte;
|
|
class var
|
|
F5: TBar;
|
|
function Test(n: TBar): TBar;
|
|
class function Test1(n: TBar): TBar; static;
|
|
|
|
procedure Set3(const Value: TBar);
|
|
class procedure Set5(const Value: TBar); static;
|
|
|
|
property P3: TBar read F3 write Set3;
|
|
class property P5: TBar read F5 write Set5;
|
|
|
|
class constructor Create;
|
|
class destructor Destroy;
|
|
|
|
procedure Test2;
|
|
procedure Test3;
|
|
end;
|
|
|
|
procedure Test4(AFoo: TFoo);
|
|
|
|
implementation
|
|
|
|
function TFoo.Test(n: TBar): TBar;
|
|
begin
|
|
Result := F3 + F4 + n;
|
|
end;
|
|
|
|
class function TFoo.Test1(n: TBar): TBar;
|
|
begin
|
|
Result := C + n;
|
|
end;
|
|
|
|
class constructor TFoo.Create;
|
|
begin
|
|
F5 := 6;
|
|
end;
|
|
|
|
class destructor TFoo.Destroy;
|
|
begin
|
|
WriteLn('TFoo.Destroy');
|
|
end;
|
|
|
|
procedure TFoo.Set3(const Value: TBar);
|
|
begin
|
|
F3 := Value;
|
|
end;
|
|
|
|
class procedure TFoo.Set5(const Value: TBar); static;
|
|
begin
|
|
F5 := Value;
|
|
end;
|
|
|
|
procedure TFoo.Test2;
|
|
begin
|
|
if Self.C <> 1 then
|
|
halt(50);
|
|
if Self.F3 <> 7 then
|
|
halt(51);
|
|
end;
|
|
|
|
procedure TFoo.Test3;
|
|
begin
|
|
Test4(Self);
|
|
end;
|
|
|
|
procedure Test4(AFoo: TFoo);
|
|
begin
|
|
if AFoo.C <> 1 then
|
|
halt(100);
|
|
if AFoo.P3 <> 7 then
|
|
halt(101);
|
|
end;
|
|
|
|
end. |