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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
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 @@
+
+
+
+
+
+ Project1
+
+
+
+
+
+ Subtitle
+
+
+
+
+
+