From b0b52a9edf672313699bb13f4d0baac1109912e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Van=20Canneyt?= Date: Sun, 27 Mar 2022 18:43:32 +0200 Subject: [PATCH] * Data module demo --- demo/datamodule/datamoduletest.lpi | 116 +++++++++++++++++++++++++++++ demo/datamodule/datamoduletest.lpr | 13 ++++ demo/datamodule/dmtest.lfm | 28 +++++++ demo/datamodule/dmtest.pp | 48 ++++++++++++ demo/datamodule/index.html | 20 +++++ 5 files changed, 225 insertions(+) create mode 100644 demo/datamodule/datamoduletest.lpi create mode 100644 demo/datamodule/datamoduletest.lpr create mode 100644 demo/datamodule/dmtest.lfm create mode 100644 demo/datamodule/dmtest.pp create mode 100644 demo/datamodule/index.html diff --git a/demo/datamodule/datamoduletest.lpi b/demo/datamodule/datamoduletest.lpi new file mode 100644 index 0000000..571f304 --- /dev/null +++ b/demo/datamodule/datamoduletest.lpi @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + <UseAppBundle Value="False"/> + <ResourceType Value="res"/> + </General> + <CustomData Count="4"> + <Item0 Name="MaintainHTML" Value="1"/> + <Item1 Name="Pas2JSProject" Value="1"/> + <Item2 Name="PasJSPort" Value="3001"/> + <Item3 Name="PasJSWebBrowserProject" Value="1"/> + </CustomData> + <BuildModes> + <Item Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + <UseFileFilters Value="True"/> + </PublishOptions> + <RunParams> + <FormatVersion Value="2"/> + </RunParams> + <RequiredPackages> + <Item> + <PackageName Value="pas2jscomponents"/> + </Item> + <Item> + <PackageName Value="Pas2JSDsgn"/> + </Item> + </RequiredPackages> + <Units> + <Unit> + <Filename Value="datamoduletest.lpr"/> + <IsPartOfProject Value="True"/> + </Unit> + <Unit> + <Filename Value="index.html"/> + <IsPartOfProject Value="True"/> + <CustomData Count="1"> + <Item0 Name="PasJSIsProjectHTMLFile" Value="1"/> + </CustomData> + </Unit> + <Unit> + <Filename Value="dmtest.pp"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="TestModule"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="DataModule"/> + </Unit> + <Unit> + <Filename Value="htmlactions.pas"/> + <IsPartOfProject Value="True"/> + </Unit> + <Unit> + <Filename Value="htmleventnames.pas"/> + <IsPartOfProject Value="True"/> + </Unit> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <Target FileExt=".js"> + <Filename Value="datamoduletest"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <UnitOutputDirectory Value="js"/> + </SearchPaths> + <Parsing> + <SyntaxOptions> + <AllowLabel Value="False"/> + <CPPInline Value="False"/> + <UseAnsiStrings Value="False"/> + </SyntaxOptions> + </Parsing> + <CodeGeneration> + <TargetOS Value="browser"/> + </CodeGeneration> + <Linking> + <Debugging> + <GenerateDebugInfo Value="False"/> + <UseLineInfoUnit Value="False"/> + </Debugging> + </Linking> + <Other> + <CustomOptions Value="-Jeutf-8 -Jirtl.js -Jc -Jminclude -JRjs"/> + <CompilerPath Value="$(pas2js)"/> + </Other> + </CompilerOptions> + <Debugging> + <Exceptions> + <Item> + <Name Value="EAbort"/> + </Item> + <Item> + <Name Value="ECodetoolError"/> + </Item> + <Item> + <Name Value="EFOpenError"/> + </Item> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/demo/datamodule/datamoduletest.lpr b/demo/datamodule/datamoduletest.lpr new file mode 100644 index 0000000..4097114 --- /dev/null +++ b/demo/datamodule/datamoduletest.lpr @@ -0,0 +1,13 @@ +program datamoduletest; + +{$mode objfpc} + +uses + JS, Classes, SysUtils, Web, dmtest, htmlactions, htmleventnames; + + + +begin + With TTestModule.Create(Nil) do + DoSomething; +end. diff --git a/demo/datamodule/dmtest.lfm b/demo/datamodule/dmtest.lfm new file mode 100644 index 0000000..1a5b1e7 --- /dev/null +++ b/demo/datamodule/dmtest.lfm @@ -0,0 +1,28 @@ +object TestModule: TTestModule + OldCreateOrder = True + Height = 152 + HorizontalOffset = 465 + VerticalOffset = 225 + Width = 277 + object alHTML: THTMLElementActionList + Left = 104 + Top = 33 + object actTitle: THTMLElementAction + Events = [] + ElementID = 'hdrTitle' + end + object actSetTitle: THTMLElementAction + Events = [heClick] + ElementID = 'btnSetTitle' + OnExecute = actSetTitleExecute + end + object acthdrTitle_2: THTMLElementAction + Events = [] + ElementID = 'hdrTitle-2' + end + object actbtnSetTitle_2: THTMLElementAction + Events = [] + ElementID = 'btnSetTitle-2' + end + end +end diff --git a/demo/datamodule/dmtest.pp b/demo/datamodule/dmtest.pp new file mode 100644 index 0000000..730b7bc --- /dev/null +++ b/demo/datamodule/dmtest.pp @@ -0,0 +1,48 @@ +unit dmtest; + +{$mode ObjFPC} + +interface + +uses + Classes, SysUtils, htmlactions, Web; + + + +type + { TTestModule } + + TTestModule = class(TDataModule) + actbtnSetTitle_2: THTMLElementAction; + acthdrTitle_2: THTMLElementAction; + actSetTitle: THTMLElementAction; + alHTML: THTMLElementActionList; + actTitle: THTMLElementAction; + procedure actSetTitleExecute(Sender: TObject; Event: TJSEvent); + private + + public + Procedure DoSomething; + end; + +var + TestModule: TTestModule; + +implementation + +{$R *.lfm} + +{ TTestModule } + +procedure TTestModule.actSetTitleExecute(Sender: TObject; Event: TJSEvent); +begin + ActTitle.Element.innerHTML:='Title is now set'; +end; + +procedure TTestModule.DoSomething; +begin + Writeln('DoSomething'); +end; + +end. + diff --git a/demo/datamodule/index.html b/demo/datamodule/index.html new file mode 100644 index 0000000..5a2bee6 --- /dev/null +++ b/demo/datamodule/index.html @@ -0,0 +1,20 @@ +<!doctype html> +<html lang="en"> +<head> + <meta http-equiv="Content-type" content="text/html; charset=utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Project1 + + + +

+ +

Subtitle

+ + + + + +