pas2js/demo/resources/htmlloadlinkdemo.lpr
2019-10-27 13:14:34 +00:00

65 lines
1.2 KiB
ObjectPascal

program htmlloadlinkdemo;
{$mode objfpc}
uses
Classes, Web, p2jsres;
{$R left.png}
{$R right.png}
{$R up.png}
{$R down.png}
Const
MaxImages = 4;
ImageResources : Array[1..MaxImages] of string = ('up','right','down','left');
Var
Img : TJSHTMLImageElement;
CurrentImage: Integer = 1;
Procedure ShowCurrentImage;
Var
aInfo : TResourceInfo;
begin
if not GetResourceInfo(ImageResources[CurrentImage],aInfo) then
Writeln('No info for image ',ImageResources[CurrentImage])
else
Img.Src:='data:'+aInfo.format+';base64,'+aInfo.Data;
end;
function RotateImage(aEvent: TJSMouseEvent): boolean;
begin
Result:=False;
Inc(CurrentImage);
if CurrentImage>MaxImages then
CurrentImage:=1;
ShowCurrentImage;
end;
procedure OnLoaded(const LoadedResources: array of String);
Var
S : String;
begin
// Some info
for S in LoadedResources do
Writeln('Found resource: ',S);
Img.OnClick:=@RotateImage;
ShowCurrentImage;
end;
procedure OnLoadFailed(const aError: string);
begin
window.alert('Failed to load resources : '+AError)
end;
begin
SetResourceSource(rsHTML);
Img:=TJSHTMLImageElement(Document.GetElementByID('theimage'));
LoadHTMLLinkResources('htmlloadlinkdemo-res.html',@OnLoaded,@OnLoadFailed);
end.