1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- program main;
- {$mode objfpc}
- uses js, web;
- {$linklib ./modules/canvas.js canvas}
- {$linklib ./modules/square.js square}
- Type
- TCreateCanvasResult = record
- ctx : TJSCanvasRenderingContext2D;
- id : string;
- end;
- Function create(aID : String; aParent : TJSElement; aWidth,aHeight : integer) : TCreateCanvasResult; external name 'canvas.create';
- Function createReportList(aID : String) : string ; external name 'canvas.createReportList';
- Type
- TDrawSquare = record
- length,x,y : NativeInt;
- color : string;
- end;
- function draw(aCTX : TJSCanvasRenderingContext2D; aLength,aX,aY : NativeInt; aColor : String) : TDrawSquare; external name 'square.draw';
- Function randomSquare (aCTX : TJSCanvasRenderingContext2D) : TDrawSquare; external name 'square.randomSquare';
- procedure reportArea (aLength : NativeInt; aListID : string); external name 'square.reportArea';
- procedure reportPerimeter (aLength : NativeInt; aListID : string); external name 'square.reportPerimeter';
- var
- myCanvas : TCreateCanvasResult;
- reportList : String;
- square1,square2 : TDrawSquare;
- begin
- myCanvas:=create('myCanvas', document.body, 480, 320);
- ReportList:= createReportList(myCanvas.id);
- square1:=draw(myCanvas.ctx, 50, 50, 100, 'blue');
- reportArea(square1.length, reportList);
- reportPerimeter(square1.length, reportList);
- square2:=randomSquare(myCanvas.ctx);
- reportArea(square2.length, reportList);
- reportPerimeter(square2.length, reportList);
- end.
|