pas2js/demo/library/modules/square.lpr
2022-02-08 23:19:59 +01:00

72 lines
1.4 KiB
ObjectPascal

library square;
{$mode objfpc}
uses
SysUtils,JS, Web;
Type
TDrawSquare = record
length,x,y : NativeInt;
color : string;
end;
function draw(aCTX : TJSCanvasRenderingContext2D; aLength,aX,aY : NativeInt; aColor : String) : TDrawSquare;
begin
aCtx.fillStyle:=aColor;
aCtx.fillRect(aX, aY, aLength, aLength);
Result.length:=alength;
Result.x:=aX;
Result.y:=aY;
Result.color:=aColor;
end;
Function randomSquare (aCTX : TJSCanvasRenderingContext2D) : TDrawSquare;
var
x,y,l : Integer;
col : string;
begin
Col:=format('rgb(%d,%d,%d)',[Random(256),Random(256),Random(256)]);
X:=Random(481);
Y:=Random(320);
L:=10+Random(9);
Result:=Draw(aCtx,l,x,y,col);
end;
procedure reportArea (aLength : NativeInt; aListID : string);
Var
aItem,aList : TJSHTMLElement;
begin
aItem:=TJSHTMLElement(document.createElement('li'));
aItem.textContent:=Format('Square area is %dpx squared.',[aLength*aLength]);
aList:=TJSHTMLElement(document.getElementById(aListID));
alist.appendChild(aItem);
end;
procedure reportPerimeter (aLength : NativeInt; aListID : string);
Var
aItem,aList : TJSHTMLElement;
begin
aItem:=TJSHTMLElement(document.createElement('li'));
aItem.textContent:=Format('Square perimeter is %dpx.',[aLength*4]);
aList:=TJSHTMLElement(document.getElementById(aListID));
alist.appendChild(aItem);
end;
exports
draw,
randomSquare,
reportArea,
reportPerimeter;
begin
// Your code here
end.