mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-05 14:48:18 +02:00
52 lines
934 B
ObjectPascal
52 lines
934 B
ObjectPascal
{$mode objfpc}{$H+}
|
|
{$modeSwitch advancedRecords}
|
|
|
|
type
|
|
TRectangle = record
|
|
public
|
|
Left, Bottom: Integer;
|
|
Width, Height: Cardinal;
|
|
|
|
function ScaleAround0(const Factor: Single): TRectangle;
|
|
end;
|
|
|
|
function TRectangle.ScaleAround0(const Factor: Single): TRectangle;
|
|
begin
|
|
if Width <= 0 then
|
|
begin
|
|
Result.Width := Width;
|
|
Result.Left := Left;
|
|
end else
|
|
halt(3);
|
|
|
|
Result.Height := Height;
|
|
Result.Bottom := Bottom;
|
|
end;
|
|
|
|
function Rectangle(const Left, Bottom: Integer;
|
|
const Width, Height: Cardinal): TRectangle;
|
|
begin
|
|
Rectangle.Left := Left;
|
|
Rectangle.Bottom := Bottom;
|
|
Rectangle.Width := Width;
|
|
Rectangle.Height := Height;
|
|
end;
|
|
|
|
procedure test(c: qword);
|
|
begin
|
|
if c<>0 then
|
|
halt(2);
|
|
end;
|
|
|
|
var
|
|
R, S : TRectangle;
|
|
begin
|
|
R := Rectangle(10, 20, 0, 50);
|
|
S := R.ScaleAround0(2);
|
|
if s.width<>0 then
|
|
halt(1);
|
|
|
|
test(R.ScaleAround0(2).Width);
|
|
end.
|
|
|