mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-04-05 21:47:47 +02:00
65 lines
1.2 KiB
ObjectPascal
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.
|