Index: /trunk/Forms/UFormAbout.lfm
===================================================================
--- /trunk/Forms/UFormAbout.lfm	(revision 114)
+++ /trunk/Forms/UFormAbout.lfm	(revision 115)
@@ -1,52 +1,103 @@
 object FormAbout: TFormAbout
-  Left = 475
-  Height = 150
-  Top = 161
-  Width = 313
-  BorderStyle = bsDialog
+  Left = 1014
+  Height = 358
+  Top = 442
+  Width = 564
   Caption = 'About'
-  ClientHeight = 150
-  ClientWidth = 313
-  Constraints.MinHeight = 150
-  Constraints.MinWidth = 313
-  Font.Height = -11
-  Font.Name = 'MS Sans Serif'
+  ClientHeight = 358
+  ClientWidth = 564
+  OnCreate = FormCreate
   OnShow = FormShow
-  Position = poMainFormCenter
-  LCLVersion = '1.4.4.0'
+  Position = poScreenCenter
+  LCLVersion = '1.6.0.4'
+  object LabelDescription: TLabel
+    Left = 20
+    Height = 72
+    Top = 110
+    Width = 524
+    Align = alTop
+    BorderSpacing.Around = 20
+    Caption = 'Turn-based strategy game inspired by classic Risk board game. The game is highly configurable to allow to adjust battle field and game rules.'
+    ParentColor = False
+    WordWrap = True
+  end
+  object ButtonClose: TButton
+    Left = 451
+    Height = 25
+    Top = 318
+    Width = 93
+    Anchors = [akRight, akBottom]
+    Caption = 'Close'
+    ModalResult = 1
+    TabOrder = 0
+  end
+  object LabelContent: TLabel
+    Left = 20
+    Height = 24
+    Top = 202
+    Width = 524
+    Align = alTop
+    BorderSpacing.Around = 20
+    Caption = '   '
+    ParentColor = False
+  end
+  object ButtonHomePage: TButton
+    Left = 16
+    Height = 25
+    Top = 318
+    Width = 176
+    Anchors = [akLeft, akBottom]
+    Caption = 'Home page'
+    OnClick = ButtonHomePageClick
+    TabOrder = 1
+  end
   object Panel1: TPanel
-    Left = 8
-    Height = 97
-    Top = 8
-    Width = 299
-    Anchors = [akTop, akLeft, akRight, akBottom]
-    BevelInner = bvRaised
-    BevelOuter = bvLowered
-    ClientHeight = 97
-    ClientWidth = 299
-    TabOrder = 0
-    object Memo1: TMemo
-      Left = 8
-      Height = 78
-      Top = 8
-      Width = 277
-      Anchors = [akTop, akLeft, akRight, akBottom]
-      BorderStyle = bsNone
-      Color = clBtnFace
-      ReadOnly = True
-      TabOrder = 0
+    Left = 0
+    Height = 90
+    Top = 0
+    Width = 564
+    Align = alTop
+    BevelOuter = bvNone
+    ClientHeight = 90
+    ClientWidth = 564
+    FullRepaint = False
+    TabOrder = 2
+    object LabelAppName: TLabel
+      Left = 96
+      Height = 55
+      Top = 20
+      Width = 144
+      Align = alCustom
+      BorderSpacing.Around = 20
+      Caption = 'xTactics'
+      Font.Height = -40
+      ParentColor = False
+      ParentFont = False
+      WordWrap = True
+    end
+    object Image1: TImage
+      Left = 16
+      Height = 66
+      Top = 20
+      Width = 66
+      Picture.Data = {
+        1754506F727461626C654E6574776F726B47726170686963CF01000089504E47
+        0D0A1A0A0000000D49484452000000400000004008030000009DB781EC000000
+        0F504C54450000000000000000FFF9042CFFFFFFF07F75380000000174524E53
+        0040E6D8660000016E49444154789CADD6590EC3200C04D01473FF33774BC0CB
+        8C3169F98A22CF2B181A711CC9789C23AB29C46F120F377E8C6F1233D45F639B
+        B0F16D22C6B7081C2F133C5E22F2F89258C78DE089529CCFE27A25E760E1760E
+        474C5372A179E043E8C94B2A8C7C330BD16B974C681A98C4A15B2789D01C7011
+        87EEBC70A145E04B704068BE0A08CB738009240F002CB03C029040F3108802CF
+        63C00B499E00A9D02B4022F41A40055F47012284320E40215625001040510604
+        01D50060D6B570A22E3903E64C5F4F58D0560066AF3E4F4830B3C1401B0F4090
+        1CB8847172BCE0DA819AE8868091EE4241E839B014FA0A081F609E6727D1FFFF
+        69BE007C5F6C02E0FBB1B50490A7C2721B417EB58D23197B301C000C42FDB2DF
+        0535131577170C33737B0ECC5A665C016FC2AE5C9F44DB0D77575384EDFD9C81
+        DD8F78D59B2FECB7F3EA817E2712E27FB868D6091AFFC3657B4D2CE339518A73
+        A21CC7C4563C12DB714BDC8A236233EE891B714D64354F08C023531B730D1E00
+        00000049454E44AE426082
+      }
     end
   end
-  object OKButton: TButton
-    Left = 111
-    Height = 25
-    Top = 117
-    Width = 75
-    Anchors = [akLeft, akBottom]
-    Caption = 'OK'
-    Default = True
-    ModalResult = 1
-    OnClick = OKButtonClick
-    TabOrder = 1
-  end
 end
Index: /trunk/Forms/UFormAbout.lrt
===================================================================
--- /trunk/Forms/UFormAbout.lrt	(revision 114)
+++ /trunk/Forms/UFormAbout.lrt	(revision 115)
@@ -1,2 +1,6 @@
 TFORMABOUT.CAPTION=About
-TFORMABOUT.OKBUTTON.CAPTION=OK
+TFORMABOUT.LABELDESCRIPTION.CAPTION=Turn-based strategy game inspired by classic Risk board game. The game is highly configurable to allow to adjust battle field and game rules.
+TFORMABOUT.BUTTONCLOSE.CAPTION=Close
+TFORMABOUT.LABELCONTENT.CAPTION=   
+TFORMABOUT.BUTTONHOMEPAGE.CAPTION=Home page
+TFORMABOUT.LABELAPPNAME.CAPTION=xTactics
Index: /trunk/Forms/UFormAbout.pas
===================================================================
--- /trunk/Forms/UFormAbout.pas	(revision 114)
+++ /trunk/Forms/UFormAbout.pas	(revision 115)
@@ -1,11 +1,11 @@
 unit UFormAbout;
 
-{$MODE Delphi}
+{$mode delphi}
 
 interface
 
 uses
-  SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
-  Buttons, ExtCtrls;
+  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Menus,
+  StdCtrls, ExtCtrls, UApplicationInfo, UCommon;
 
 type
@@ -14,13 +14,18 @@
 
   TFormAbout = class(TForm)
+    ButtonHomePage: TButton;
+    ButtonClose: TButton;
+    Image1: TImage;
+    LabelAppName: TLabel;
+    LabelDescription: TLabel;
+    LabelContent: TLabel;
     Panel1: TPanel;
-    OKButton: TButton;
-    Memo1: TMemo;
-    procedure OKButtonClick(Sender: TObject);
+    procedure ButtonHomePageClick(Sender: TObject);
+    procedure FormCreate(Sender: TObject);
     procedure FormShow(Sender: TObject);
   private
-    { Private declarations }
+    { private declarations }
   public
-    { Public declarations }
+    { public declarations }
   end;
 
@@ -36,32 +41,30 @@
 
 resourcestring
-  SApplicationName = 'Application name';
   SVersion = 'Version';
   SReleaseDate = 'Release date';
-  SManufacturer = 'Company';
-  SEmail = 'E-mail';
-  SHomePage = 'Homepage';
+  SLicense = 'License';
+
+{ TFormAbout }
 
 procedure TFormAbout.FormShow(Sender: TObject);
 begin
-  with Memo1, Lines, Core.ApplicationInfo do begin
-    BeginUpdate;
-    Clear;
-    Add(SApplicationName + ': ' + AppName);
-    Add(SVersion + ': ' + Version);
-    Add(SReleaseDate + ': ' + DateToStr(ReleaseDate));
-    Add(SHomePage + ': ' + HomePage);
-    Add(SManufacturer + ': ' + CompanyName);
-    Add(SEmail + ': ' + EmailContact);
-    EndUpdate;
+  with Core do begin
+    LabelAppName.Caption := ApplicationInfo.AppName;
+    LabelContent.Caption := SVersion + ': ' + ApplicationInfo.Version + LineEnding +
+      SReleaseDate + ': ' + DateToStr(ApplicationInfo.ReleaseDate) + LineEnding +
+      SLicense + ': ' + ApplicationInfo.License;
   end;
-  FocusControl(OKButton);
 end;
 
-procedure TFormAbout.OKButtonClick(Sender: TObject);
+procedure TFormAbout.ButtonHomePageClick(Sender: TObject);
 begin
-  Close;
+  OpenWebPage(Core.ApplicationInfo.HomePage);
+end;
+
+procedure TFormAbout.FormCreate(Sender: TObject);
+begin
+  Core.CoolTranslator1.TranslateComponentRecursive(Self);
 end;
 
 end.
- 
+
Index: /trunk/Languages/xtactics.cs.po
===================================================================
--- /trunk/Languages/xtactics.cs.po	(revision 114)
+++ /trunk/Languages/xtactics.cs.po	(revision 115)
@@ -9,5 +9,6 @@
 "MIME-Version: 1.0\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.5.4\n"
+"X-Generator: Poedit 1.8.9\n"
+"Language: cs\n"
 
 #: tcore.aabout.caption
@@ -84,27 +85,11 @@
 msgstr "Nastavení aplikace"
 
-#: tform1.button1.caption
-msgid "Button1"
-msgstr ""
-
-#: tform1.caption
-msgid "Form1"
-msgstr ""
-
-#: tform1.groupbox1.caption
-msgid "GroupBox1"
-msgstr ""
-
-#: tform1.tabsheet1.caption
-msgid "TabSheet1"
-msgstr ""
-
-#: tform1.tabsheet2.caption
-msgid "TabSheet2"
-msgstr ""
-
-#: tform1.tabsheet3.caption
-msgid "TabSheet3"
-msgstr ""
+#: tformabout.buttonclose.caption
+msgid "Close"
+msgstr "Zavřít"
+
+#: tformabout.buttonhomepage.caption
+msgid "Home page"
+msgstr "Domovská stránka"
 
 #: tformabout.caption
@@ -113,7 +98,18 @@
 msgstr "O aplikaci"
 
-#: tformabout.okbutton.caption
-msgid "OK"
-msgstr "OK"
+#: tformabout.labelappname.caption
+msgctxt "tformabout.labelappname.caption"
+msgid "xTactics"
+msgstr "xTactics"
+
+#: tformabout.labelcontent.caption
+#, fuzzy
+msgctxt "tformabout.labelcontent.caption"
+msgid "   "
+msgstr "   "
+
+#: tformabout.labeldescription.caption
+msgid "Turn-based strategy game inspired by classic Risk board game. The game is highly configurable to allow to adjust battle field and game rules."
+msgstr "Tahová strategie inspirovaná klasickou deskovou hrou Risk. Hra je vysoce nastavitelná a umožňuje přizpůsobit bitevní pole a herní pravidla."
 
 #: tformhelp.caption
@@ -147,4 +143,5 @@
 
 #: tformmain.caption
+msgctxt "tformmain.caption"
 msgid "xTactics"
 msgstr "xTactics"
@@ -226,4 +223,5 @@
 
 #: tformmove.labelwinprobability.caption
+msgctxt "tformmove.labelwinprobability.caption"
 msgid "   "
 msgstr "   "
@@ -480,19 +478,7 @@
 msgstr "Chcete restartovat aktuální hru?"
 
-#: uformabout.sapplicationname
-msgid "Application name"
-msgstr "Název aplikace"
-
-#: uformabout.semail
-msgid "E-mail"
-msgstr "E-mail"
-
-#: uformabout.shomepage
-msgid "Homepage"
-msgstr "Domovská stránka"
-
-#: uformabout.smanufacturer
-msgid "Company"
-msgstr "Společnost"
+#: uformabout.slicense
+msgid "License"
+msgstr ""
 
 #: uformabout.sreleasedate
Index: /trunk/Languages/xtactics.po
===================================================================
--- /trunk/Languages/xtactics.po	(revision 114)
+++ /trunk/Languages/xtactics.po	(revision 115)
@@ -75,26 +75,10 @@
 msgstr ""
 
-#: tform1.button1.caption
-msgid "Button1"
-msgstr ""
-
-#: tform1.caption
-msgid "Form1"
-msgstr ""
-
-#: tform1.groupbox1.caption
-msgid "GroupBox1"
-msgstr ""
-
-#: tform1.tabsheet1.caption
-msgid "TabSheet1"
-msgstr ""
-
-#: tform1.tabsheet2.caption
-msgid "TabSheet2"
-msgstr ""
-
-#: tform1.tabsheet3.caption
-msgid "TabSheet3"
+#: tformabout.buttonclose.caption
+msgid "Close"
+msgstr ""
+
+#: tformabout.buttonhomepage.caption
+msgid "Home page"
 msgstr ""
 
@@ -104,6 +88,16 @@
 msgstr ""
 
-#: tformabout.okbutton.caption
-msgid "OK"
+#: tformabout.labelappname.caption
+msgctxt "TFORMABOUT.LABELAPPNAME.CAPTION"
+msgid "xTactics"
+msgstr ""
+
+#: tformabout.labelcontent.caption
+msgctxt "TFORMABOUT.LABELCONTENT.CAPTION"
+msgid "   "
+msgstr ""
+
+#: tformabout.labeldescription.caption
+msgid "Turn-based strategy game inspired by classic Risk board game. The game is highly configurable to allow to adjust battle field and game rules."
 msgstr ""
 
@@ -138,4 +132,5 @@
 
 #: tformmain.caption
+msgctxt "tformmain.caption"
 msgid "xTactics"
 msgstr ""
@@ -216,4 +211,5 @@
 
 #: tformmove.labelwinprobability.caption
+msgctxt "tformmove.labelwinprobability.caption"
 msgid "   "
 msgstr ""
@@ -466,18 +462,6 @@
 msgstr ""
 
-#: uformabout.sapplicationname
-msgid "Application name"
-msgstr ""
-
-#: uformabout.semail
-msgid "E-mail"
-msgstr ""
-
-#: uformabout.shomepage
-msgid "Homepage"
-msgstr ""
-
-#: uformabout.smanufacturer
-msgid "Company"
+#: uformabout.slicense
+msgid "License"
 msgstr ""
 
Index: /trunk/UCore.lfm
===================================================================
--- /trunk/UCore.lfm	(revision 114)
+++ /trunk/UCore.lfm	(revision 115)
@@ -2045,9 +2045,10 @@
     AuthorsName = 'Chronos'
     AppName = 'xTactics'
-    ReleaseDate = 42701
+    ReleaseDate = 42714
     RegistryKey = '\Software\xTactics'
     RegistryRoot = rrKeyCurrentUser
-    left = 109
-    top = 140
+    License = 'CC0'
+    left = 112
+    top = 155
   end
   object PersistentForm: TPersistentForm
Index: /trunk/UCore.pas
===================================================================
--- /trunk/UCore.pas	(revision 114)
+++ /trunk/UCore.pas	(revision 115)
@@ -233,5 +233,10 @@
 procedure TCore.AAboutExecute(Sender: TObject);
 begin
-  FormAbout.ShowModal;
+  FormAbout := TFormAbout.Create(Self);
+  try
+    FormAbout.ShowModal;
+  finally
+    FreeAndNil(FormAbout);
+  end;
 end;
 
@@ -321,5 +326,10 @@
 procedure TCore.AHelpExecute(Sender: TObject);
 begin
-  FormHelp.ShowModal;
+  FormHelp := TFormHelp.Create(Self);
+  try
+    FormHelp.ShowModal;
+  finally
+    FreeAndNil(FormHelp);
+  end;
 end;
 
Index: /trunk/UGame.pas
===================================================================
--- /trunk/UGame.pas	(revision 114)
+++ /trunk/UGame.pas	(revision 115)
@@ -139,6 +139,6 @@
 
   TCanvasEx = class(TCanvas)
-    procedure TextOutEx(X,Y: Integer; const Text: string; MovePen: Boolean = True);
-    procedure PolygonEx(const Points: array of TPoint; Winding: Boolean);
+    class procedure TextOutEx(Canvas: TCanvas; X,Y: Integer; const Text: string; MovePen: Boolean = True);
+    class procedure PolygonEx(Canvas: TCanvas; const Points: array of TPoint; Winding: Boolean);
   end;
 
@@ -874,24 +874,26 @@
 { TCanvasEx }
 
-procedure TCanvasEx.TextOutEx(X, Y: Integer; const Text: string;
+class procedure TCanvasEx.TextOutEx(Canvas: TCanvas; X, Y: Integer; const Text: string;
   MovePen: Boolean);
 var
   Flags : Cardinal;
 begin
-  Changing;
-  RequiredState([csHandleValid, csFontValid, csBrushValid]);
-  Flags := 0;
-  if TextStyle.Opaque then
-    Flags := ETO_Opaque;
-  ExtUTF8Out(Handle, X, Y, Flags, nil, PChar(Text), Length(Text), nil);
-  if MovePen then MoveTo(X + TextWidth(Text), Y);
-  Changed;
-end;
-
-procedure TCanvasEx.PolygonEx(const Points: array of TPoint; Winding: Boolean);
+  with Canvas do begin
+    Changing;
+    RequiredState([csHandleValid, csFontValid, csBrushValid]);
+    Flags := 0;
+    if TextStyle.Opaque then
+      Flags := ETO_Opaque;
+    ExtUTF8Out(Handle, X, Y, Flags, nil, PChar(Text), Length(Text), nil);
+    if MovePen then MoveTo(X + TextWidth(Text), Y);
+    Changed;
+  end;
+end;
+
+class procedure TCanvasEx.PolygonEx(Canvas: TCanvas; const Points: array of TPoint; Winding: Boolean);
 begin
   //Changing;
   //RequiredState([csHandleValid, csBrushValid, csPenValid]);
-  LCLIntf.Polygon(Handle, @Points[0], Length(Points), Winding);
+  LCLIntf.Polygon(Canvas.Handle, @Points[0], Length(Points), Winding);
   //Changed;
 end;
@@ -1297,5 +1299,5 @@
     Brush.Style := bsSolid;
     //Polygon(Points, False, 0, Length(Points));
-    TCanvasEx(Canvas).PolygonEx(Points, False);
+    TCanvasEx.PolygonEx(Canvas, Points, False);
     //MoveTo(Points[0].X, Points[0].Y);
     //LineTo(Points[1].X, Points[1].Y);
@@ -1309,5 +1311,5 @@
       TextPos := View.CellToCanvasPos(Pos);
       TextSize := TextExtent(Text);
-      TCanvasEx(Canvas).TextOutEx(Round(TextPos.X) - TextSize.cx div 2,
+      TCanvasEx.TextOutEx(Canvas, Round(TextPos.X) - TextSize.cx div 2,
         Round(TextPos.Y) - TextSize.cy div 2, Text, False);
     end;
Index: /trunk/xtactics.lpr
===================================================================
--- /trunk/xtactics.lpr	(revision 114)
+++ /trunk/xtactics.lpr	(revision 115)
@@ -37,6 +37,4 @@
   Application.CreateForm(TFormPlayer, FormPlayer);
   Application.CreateForm(TFormSettings, FormSettings);
-  Application.CreateForm(TFormAbout, FormAbout);
-  Application.CreateForm(TFormHelp, FormHelp);
   Application.Run;
 end.
