diff --git a/components/rx/trunk/demos/RxContols/RxClock/project1.ico b/components/rx/trunk/demos/RxContols/RxClock/project1.ico
new file mode 100644
index 000000000..0341321b5
Binary files /dev/null and b/components/rx/trunk/demos/RxContols/RxClock/project1.ico differ
diff --git a/components/rx/trunk/demos/RxContols/RxClock/project1.lpi b/components/rx/trunk/demos/RxContols/RxClock/project1.lpi
new file mode 100644
index 000000000..11f132b06
--- /dev/null
+++ b/components/rx/trunk/demos/RxContols/RxClock/project1.lpi
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/rx/trunk/demos/RxContols/RxClock/project1.lpr b/components/rx/trunk/demos/RxContols/RxClock/project1.lpr
new file mode 100644
index 000000000..11cd90bd2
--- /dev/null
+++ b/components/rx/trunk/demos/RxContols/RxClock/project1.lpr
@@ -0,0 +1,23 @@
+program project1;
+
+{$mode objfpc}{$H+}
+
+uses
+ {$IFDEF UNIX}{$IFDEF UseCThreads}
+ cthreads,
+ {$ENDIF}{$ENDIF}
+ Interfaces, // this includes the LCL widgetset
+ Forms, Unit1, rxnew
+ { you can add units after this };
+
+{$R *.res}
+
+begin
+ RequireDerivedFormResource:=True;
+ Application.Title:='RxClock demo';
+ Application.Scaled:=True;
+ Application.Initialize;
+ Application.CreateForm(TForm1, Form1);
+ Application.Run;
+end.
+
diff --git a/components/rx/trunk/demos/RxContols/RxClock/project1.lps b/components/rx/trunk/demos/RxContols/RxClock/project1.lps
new file mode 100644
index 000000000..9a849f655
--- /dev/null
+++ b/components/rx/trunk/demos/RxContols/RxClock/project1.lps
@@ -0,0 +1,161 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/components/rx/trunk/demos/RxContols/RxClock/project1.res b/components/rx/trunk/demos/RxContols/RxClock/project1.res
new file mode 100644
index 000000000..c16f002d3
Binary files /dev/null and b/components/rx/trunk/demos/RxContols/RxClock/project1.res differ
diff --git a/components/rx/trunk/demos/RxContols/RxClock/unit1.lfm b/components/rx/trunk/demos/RxContols/RxClock/unit1.lfm
new file mode 100644
index 000000000..6f46bbcb8
--- /dev/null
+++ b/components/rx/trunk/demos/RxContols/RxClock/unit1.lfm
@@ -0,0 +1,118 @@
+object Form1: TForm1
+ Left = 333
+ Height = 336
+ Top = 141
+ Width = 440
+ Caption = 'RxClock demo'
+ ClientHeight = 336
+ ClientWidth = 440
+ OnCreate = FormCreate
+ Position = poScreenCenter
+ LCLVersion = '2.1.0.0'
+ object RxClock1: TRxClock
+ AnchorSideLeft.Control = Owner
+ AnchorSideTop.Control = Owner
+ AnchorSideRight.Control = Owner
+ AnchorSideRight.Side = asrBottom
+ Left = 6
+ Height = 104
+ Top = 6
+ Width = 428
+ Anchors = [akTop, akLeft, akRight]
+ Font.Height = -40
+ ParentFont = False
+ OnAlarm = RxClock1Alarm
+ end
+ object CheckBox1: TCheckBox
+ AnchorSideLeft.Control = Owner
+ AnchorSideLeft.Side = asrCenter
+ AnchorSideTop.Control = RxClock1
+ AnchorSideTop.Side = asrBottom
+ Left = 159
+ Height = 23
+ Top = 116
+ Width = 122
+ BorderSpacing.Around = 6
+ Caption = 'Alarm enabled'
+ OnChange = CheckBox1Change
+ TabOrder = 1
+ end
+ object SpinEdit1: TSpinEdit
+ AnchorSideLeft.Control = Label2
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = CheckBox1
+ AnchorSideTop.Side = asrBottom
+ Left = 239
+ Height = 31
+ Top = 145
+ Width = 90
+ BorderSpacing.Around = 6
+ MaxValue = 23
+ TabOrder = 2
+ Value = 1
+ end
+ object Label2: TLabel
+ AnchorSideLeft.Control = CheckBox1
+ AnchorSideBottom.Control = SpinEdit1
+ AnchorSideBottom.Side = asrBottom
+ Left = 159
+ Height = 19
+ Top = 157
+ Width = 74
+ Anchors = [akLeft, akBottom]
+ Caption = 'Alarm hour'
+ ParentColor = False
+ end
+ object SpinEdit2: TSpinEdit
+ AnchorSideLeft.Control = Label2
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = SpinEdit1
+ AnchorSideTop.Side = asrBottom
+ Left = 239
+ Height = 31
+ Top = 182
+ Width = 90
+ BorderSpacing.Around = 6
+ MaxValue = 59
+ TabOrder = 3
+ Value = 1
+ end
+ object Label3: TLabel
+ AnchorSideLeft.Control = CheckBox1
+ AnchorSideBottom.Control = SpinEdit2
+ AnchorSideBottom.Side = asrBottom
+ Left = 159
+ Height = 19
+ Top = 194
+ Width = 69
+ Anchors = [akLeft, akBottom]
+ Caption = 'Alarm min'
+ ParentColor = False
+ end
+ object SpinEdit3: TSpinEdit
+ AnchorSideLeft.Control = Label2
+ AnchorSideLeft.Side = asrBottom
+ AnchorSideTop.Control = SpinEdit2
+ AnchorSideTop.Side = asrBottom
+ Left = 239
+ Height = 31
+ Top = 219
+ Width = 90
+ BorderSpacing.Around = 6
+ MaxValue = 59
+ TabOrder = 4
+ Value = 1
+ end
+ object Label4: TLabel
+ AnchorSideLeft.Control = CheckBox1
+ AnchorSideBottom.Control = SpinEdit3
+ AnchorSideBottom.Side = asrBottom
+ Left = 159
+ Height = 19
+ Top = 231
+ Width = 66
+ Anchors = [akLeft, akBottom]
+ Caption = 'Alarm sec'
+ ParentColor = False
+ end
+end
diff --git a/components/rx/trunk/demos/RxContols/RxClock/unit1.pas b/components/rx/trunk/demos/RxContols/RxClock/unit1.pas
new file mode 100644
index 000000000..0b5e6f466
--- /dev/null
+++ b/components/rx/trunk/demos/RxContols/RxClock/unit1.pas
@@ -0,0 +1,78 @@
+unit Unit1;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, Spin,
+ rxclock;
+
+type
+
+ { TForm1 }
+
+ TForm1 = class(TForm)
+ CheckBox1: TCheckBox;
+ Label2: TLabel;
+ Label3: TLabel;
+ Label4: TLabel;
+ RxClock1: TRxClock;
+ SpinEdit1: TSpinEdit;
+ SpinEdit2: TSpinEdit;
+ SpinEdit3: TSpinEdit;
+ procedure CheckBox1Change(Sender: TObject);
+ procedure FormCreate(Sender: TObject);
+ procedure RxClock1Alarm(Sender: TObject);
+ private
+
+ public
+
+ end;
+
+var
+ Form1: TForm1;
+
+implementation
+
+{$R *.lfm}
+
+{ TForm1 }
+
+procedure TForm1.RxClock1Alarm(Sender: TObject);
+begin
+ ShowMessage('Alarm!');
+ CheckBox1.Checked:=false;
+end;
+
+procedure TForm1.CheckBox1Change(Sender: TObject);
+begin
+ RxClock1.AlarmEnabled:=CheckBox1.Checked;
+
+ if CheckBox1.Checked then
+ begin
+ RxClock1.AlarmHour:=SpinEdit1.Value;
+ RxClock1.AlarmMinute:=SpinEdit2.Value;
+ RxClock1.AlarmSecond:=SpinEdit3.Value;
+ end;
+
+ SpinEdit1.Enabled:=not CheckBox1.Checked;
+ SpinEdit2.Enabled:=SpinEdit1.Enabled;
+ SpinEdit3.Enabled:=SpinEdit1.Enabled;
+
+ Label2.Enabled:=SpinEdit1.Enabled;
+ Label3.Enabled:=SpinEdit1.Enabled;
+ Label4.Enabled:=SpinEdit1.Enabled;
+end;
+
+procedure TForm1.FormCreate(Sender: TObject);
+var
+ H, M, S, MS: word;
+begin
+ DecodeTime(Now, H, M, S, MS);
+ SpinEdit1.Value:=H;
+ SpinEdit2.Value:=M;
+end;
+
+end.
+