Check-in [e610b70763]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:First working version. No config yet.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: e610b70763556514a77d0bf63b8ea1d783c743bf
User & Date: MCO 2014-09-03 16:54:51
Context
2014-09-04
11:40
Added configuration controls. check-in: 69e577d0a7 user: MCO tags: trunk
2014-09-03
16:54
First working version. No config yet. check-in: e610b70763 user: MCO tags: trunk
15:31
Added units necessary for setup. check-in: 5f28379b23 user: MCO tags: trunk
Changes

Changes to src/F_Config.dfm.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
object frmConfig: TfrmConfig
  Left = 0
  Top = 0
  Caption = 'frmConfig'
  ClientHeight = 282
  ClientWidth = 418
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  Position = poScreenCenter
  PixelsPerInch = 96
  TextHeight = 13
end



|













1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
object frmConfig: TfrmConfig
  Left = 0
  Top = 0
  Caption = 'Datum+ configuratie'
  ClientHeight = 282
  ClientWidth = 418
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  Position = poScreenCenter
  PixelsPerInch = 96
  TextHeight = 13
end

Changes to src/F_Main.dfm.

1
2
3
4
5
6
7
8
9
10
11
12
13
14


15
16



17
18










19













































































object frmMain: TfrmMain
  Left = 0
  Top = 0
  BorderIcons = [biSystemMenu]
  BorderStyle = bsNone
  Caption = 'frmMain'
  ClientHeight = 320
  ClientWidth = 434
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []


  OldCreateOrder = False
  Position = poScreenCenter



  PixelsPerInch = 96
  TextHeight = 13










end


















































































|


|

|



>
>


>
>
>


>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
object frmMain: TfrmMain
  Left = 0
  Top = 0
  BorderIcons = [biSystemMenu]
  BorderStyle = bsNone
  Caption = 'Datum+'
  ClientHeight = 320
  ClientWidth = 434
  Color = clBlack
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWhite
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  FormStyle = fsStayOnTop
  KeyPreview = True
  OldCreateOrder = False
  Position = poScreenCenter
  OnCreate = FormCreate
  OnKeyDown = FormKeyDown
  OnResize = FormResize
  PixelsPerInch = 96
  TextHeight = 13
  object gpnlDate: TGridPanel
    Left = 0
    Top = 0
    Width = 434
    Height = 320
    Align = alClient
    BevelOuter = bvNone
    ColumnCollection = <
      item
        Value = 100.000000000000000000
      end>
    ControlCollection = <
      item
        Column = 0
        Control = lblWeekday
        Row = 0
      end
      item
        Column = 0
        Control = lblTime
        Row = 1
      end
      item
        Column = 0
        Control = lblDate
        Row = 2
      end>
    ParentBackground = False
    ParentColor = True
    RowCollection = <
      item
        Value = 20.000000000000000000
      end
      item
        Value = 60.000000000000000000
      end
      item
        Value = 20.000000000000000000
      end>
    TabOrder = 0
    OnMouseMove = gpnlDateMouseMove
    DesignSize = (
      434
      320)
    object lblWeekday: TLabel
      Left = 204
      Top = 25
      Width = 26
      Height = 13
      Anchors = []
      Caption = '(dag)'
      ShowAccelChar = False
      OnMouseMove = gpnlDateMouseMove
      ExplicitLeft = 181
      ExplicitTop = 35
    end
    object lblTime: TLabel
      Left = 205
      Top = 153
      Width = 23
      Height = 13
      Anchors = []
      Caption = '(tijd)'
      ShowAccelChar = False
      OnMouseMove = gpnlDateMouseMove
      ExplicitLeft = 185
      ExplicitTop = 141
    end
    object lblDate: TLabel
      Left = 198
      Top = 281
      Width = 38
      Height = 13
      Anchors = []
      Caption = '(datum)'
      ShowAccelChar = False
      OnMouseMove = gpnlDateMouseMove
      ExplicitLeft = 163
      ExplicitTop = 248
    end
  end
  object tmrUpdate: TTimer
    Interval = 60000
    OnTimer = tmrUpdateTimer
    Left = 16
    Top = 16
  end
end

Changes to src/F_Main.pas.

1
2
3
4
5
6
7
8
9
10











11
12


13
14
15
16
17
18
19
20


21
22
23

















































































































24
unit F_Main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

type
  TfrmMain = class(TForm)











  private
    { Private declarations }


  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation



{$R *.dfm}


















































































































end.






|



>
>
>
>
>
>
>
>
>
>
>


>
>








>
>



>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
unit F_Main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;

type
  TfrmMain = class(TForm)
    gpnlDate: TGridPanel;
    lblWeekday: TLabel;
    lblTime: TLabel;
    lblDate: TLabel;
    tmrUpdate: TTimer;
    procedure tmrUpdateTimer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure gpnlDateMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormResize(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  private
    { Private declarations }
    FLastMousePos: TPoint;
    FInitialFontSize: Integer;
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation
uses
  ScreenSaverUtils;

{$R *.dfm}

procedure TfrmMain.FormCreate(Sender: TObject);
var
  i: Integer;
  frmSub: TfrmMain;
begin
  {$IFDEF DEBUG}
  frmMain.FormStyle := fsNormal;
  {$ENDIF}

  FLastMousePos.x := -1;
  FLastMousePos.y := -1;

  // TODO: store the initial font size
  FInitialFontSize := Font.Size;

  tmrUpdateTimer(tmrUpdate);

  if Self = frmMain then begin
    if ScreenSaverMode = ssRun then begin
      // create forms for all other screens
      for i := 0 to Screen.MonitorCount - 1 do begin
        if not Screen.Monitors[i].Primary then begin
          Application.CreateForm(TfrmMain, frmSub);
          frmSub.Position := poDesigned;
          frmSub.Left := Screen.Monitors[i].Left;
          frmSub.WindowState := wsMaximized;
        end;
      end;
    end;
  end else begin
    // TODO: code only for non-primary monitors
  end;

  FormResize(Self);
  Show;
end;

procedure TfrmMain.FormResize(Sender: TObject);

  {$MESSAGE WARN 'TODO: write routine to evaluate width and height of given cell  MCO 03-09-2014'}

var
  Size: Integer;
  MaxWidth, MaxHeight: Integer;
  i: Integer;
  Ctl: TControlItem;
  Fits: Boolean;
  Lbl: TLabel;
begin
  // TODO: figure out the maximum font size where all elements fit without wrapping,
  //  and where the current time has twice the font size of the other elements
  Size := FInitialFontSize;
  Font.Size := Size;
  MaxWidth := gpnlDate.Width div gpnlDate.ColumnCollection.Count;
  MaxHeight := gpnlDate.Height div gpnlDate.RowCollection.Count;

  for i := 0 to gpnlDate.ControlCollection.Count - 1 do begin
    Ctl := gpnlDate.ControlCollection[i];
    if Ctl.Control is TLabel then
      TLabel(Ctl.Control).ParentFont := True;
  end;

  Fits := True;
  while Fits do begin
    Inc(Size);
    Font.Size := Size;
    lblTime.Font.Size := Size * 3;

    // figure out if all labels in the control collection still fit
    for i := 0 to gpnlDate.ControlCollection.Count - 1 do begin
      Ctl := gpnlDate.ControlCollection[i];
      if Ctl.Control is TLabel then begin
        Lbl := TLabel(Ctl.Control);
        Fits := (Lbl.Width <= MaxWidth) and (Lbl.Height <= MaxHeight);
        if not Fits then
          Break;
      end;
    end;
  end;
  Dec(Size);
  Font.Size := Size;
  lblTime.Font.Size := Size * 3;
end;

procedure TfrmMain.tmrUpdateTimer(Sender: TObject);
begin
  lblWeekday.Caption := FormatDateTime('dddd', Now);
  lblTime.Caption := FormatDateTime('HH:nn', Now);
  lblDate.Caption := FormatDateTime('d mmmm yyyy', Now);
end;

procedure TfrmMain.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  Application.Terminate;
end;

procedure TfrmMain.gpnlDateMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  // TODO: if Sender <> Self then translate X and Y to form (or screen) positions
  if (FLastMousePos.X = -1) and (FLastMousePos.Y = -1) then begin
    FLastMousePos.X := X;
    FLastMousePos.Y := Y;
  end else begin
    if (Abs(X-FLastMousePos.X) > 2) and (Abs(Y-FLastMousePos.Y) > 2) then begin
      FLastMousePos.X := X;
      FLastMousePos.Y := Y;
      Application.Terminate;
    end;
  end;
end;

end.

Changes to src/ScreenSaverUtils.pas.

70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
    try
      ParentSaverHandle := StrToInt(Param);
    except
      ParentSaverHandle := 0;
    end;
  end;
  if ScreenSaverMode = ssPassword then
    SetScreenSaverPassword; // Call's halt
end;

procedure SetScreenSaverPassword;
var
  SysDir: string;
  MyMod: THandle;
  PwdFunc: function(a : PChar; ParentHandle: THandle; b, c: Integer):







|







70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
    try
      ParentSaverHandle := StrToInt(Param);
    except
      ParentSaverHandle := 0;
    end;
  end;
  if ScreenSaverMode = ssPassword then
    SetScreenSaverPassword; // Calls halt
end;

procedure SetScreenSaverPassword;
var
  SysDir: string;
  MyMod: THandle;
  PwdFunc: function(a : PChar; ParentHandle: THandle; b, c: Integer):

Changes to src/ssdatum.dpr.

15
16
17
18
19
20
21
22
23
24
25

26
27
28
29
30
31
32
33


34
35
36
  // what mode the screen saver is to run in
  // This set's the global variable's ScreenSaverMode
  // and ParentHandle. If the mode was to set the password,
  // a call to this function will never return (it calls Halt).
  SetScreenSaverMode;

  Application.Initialize;
  Application.MainFormOnTaskbar := False;
  Application.Title := 'Datum+ Screen Saver';

  // Remove the task bar button

  SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

  if ScreenSaverMode = ssConfigure then begin
    // Create the configure form to configure the screen saver
    Application.CreateForm(TfrmConfig, frmConfig);
  end else begin
    // We are either doing a preview or actually running the screen saver
    Application.CreateForm(TfrmMain, frmMain);


  end;
  Application.Run;
end.







<



>








>
>



15
16
17
18
19
20
21

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  // what mode the screen saver is to run in
  // This set's the global variable's ScreenSaverMode
  // and ParentHandle. If the mode was to set the password,
  // a call to this function will never return (it calls Halt).
  SetScreenSaverMode;

  Application.Initialize;

  Application.Title := 'Datum+ Screen Saver';

  // Remove the task bar button
  Application.MainFormOnTaskbar := False;
  SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);

  if ScreenSaverMode = ssConfigure then begin
    // Create the configure form to configure the screen saver
    Application.CreateForm(TfrmConfig, frmConfig);
  end else begin
    // We are either doing a preview or actually running the screen saver
    Application.CreateForm(TfrmMain, frmMain);
    frmMain.Left := Screen.PrimaryMonitor.Left;
    frmMain.WindowState := wsMaximized;
  end;
  Application.Run;
end.

Changes to src/ssdatum.dproj.

34
35
36
37
38
39
40
41






42
43
44


45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

62
63
64

65
66
67
68
69
70
71
..
80
81
82
83
84
85
86




87
88
89
90
91
92
93
        <Cfg_1>true</Cfg_1>
        <Base>true</Base>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
        <Cfg_2>true</Cfg_2>
        <CfgParent>Base</CfgParent>
        <Base>true</Base>
    </PropertyGroup>






    <PropertyGroup Condition="'$(Base)'!=''">
        <Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
        <SanitizedProjectName>ssdatum</SanitizedProjectName>


        <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
        <OutputExt>.scr</OutputExt>
        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
        <VerInfo_Locale>1043</VerInfo_Locale>
        <DCC_UNIT_PLATFORM>false</DCC_UNIT_PLATFORM>
        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
        <DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM>
        <VerInfo_Keys>CompanyName=Martijn Coppoolse;FileDescription=Simple Date Screen Saver;FileVersion=1.0.0.0;InternalName=ssDatum;LegalCopyright=© Martijn Coppoolse;LegalTrademarks=;OriginalFilename=ssDatum.scr;ProductName=Eenvoudige datumschermbeveiliging;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
        <DCC_DcuOutput>..\out\DCU\$(Platform)\$(Config)</DCC_DcuOutput>
        <DCC_ExeOutput>..\out\$(Platform)\$(Config)</DCC_ExeOutput>
        <DCC_E>false</DCC_E>
        <DCC_N>false</DCC_N>
        <DCC_S>false</DCC_S>
        <DCC_F>false</DCC_F>
        <DCC_K>false</DCC_K>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Base_Win32)'!=''">

        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
        <VerInfo_Locale>1033</VerInfo_Locale>
        <DCC_UsePackage>FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;vcldbx;FireDACPgDriver;FireDACODBCDriver;RESTBackendComponents;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;inetdb;tethering;TeeDB;inetdbbde;DBXInterBaseDriver;Tee;vclFireDAC;xmlrtl;svnui;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;FireDACCommonDriver;MetropolisUILiveTile;bindcompdbx;soaprtl;bindengine;vclactnband;vcldb;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;CustomIPTransport;vclribbon;VclSmp;FireDAC;dsnap;IndyIPServer;Intraweb;fmxase;vcl;IndyCore;VCLRESTComponents;IndyIPCommon;CloudService;CodeSiteExpressPkg;dsnapcon;FireDACIBDriver;FmxTeeUI;inet;fmxobj;FireDACMySQLDriver;soapmidas;vclx;soapserver;inetdbxpress;svn;dsnapxml;fmxdae;RESTComponents;bdertl;FireDACMSAccDriver;dbexpress;adortl;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>

    </PropertyGroup>
    <PropertyGroup Condition="'$(Base_Win64)'!=''">
        <DCC_UsePackage>FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;FireDACPgDriver;FireDACODBCDriver;RESTBackendComponents;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;inetdb;tethering;TeeDB;DBXInterBaseDriver;Tee;vclFireDAC;xmlrtl;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;FireDACCommonDriver;MetropolisUILiveTile;bindcompdbx;soaprtl;bindengine;vclactnband;vcldb;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;CustomIPTransport;vclribbon;VclSmp;FireDAC;dsnap;IndyIPServer;Intraweb;fmxase;vcl;IndyCore;VCLRESTComponents;IndyIPCommon;CloudService;dsnapcon;FireDACIBDriver;FmxTeeUI;inet;fmxobj;FireDACMySQLDriver;soapmidas;vclx;soapserver;inetdbxpress;dsnapxml;fmxdae;RESTComponents;FireDACMSAccDriver;dbexpress;adortl;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_1)'!=''">
        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
        <DCC_DebugDCUs>true</DCC_DebugDCUs>
................................................................................
        <DCC_RemoteDebug>false</DCC_RemoteDebug>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_2)'!=''">
        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
        <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
        <DCC_DebugInformation>0</DCC_DebugInformation>




    </PropertyGroup>
    <ItemGroup>
        <DelphiCompile Include="$(MainSource)">
            <MainSource>MainSource</MainSource>
        </DelphiCompile>
        <DCCReference Include="F_Main.pas">
            <Form>frmMain</Form>








>
>
>
>
>
>

<

>
>

<

<


<










>

<

>







 







>
>
>
>







34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

49
50
51
52

53

54
55

56
57
58
59
60
61
62
63
64
65
66
67

68
69
70
71
72
73
74
75
76
..
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
        <Cfg_1>true</Cfg_1>
        <Base>true</Base>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
        <Cfg_2>true</Cfg_2>
        <CfgParent>Base</CfgParent>
        <Base>true</Base>
    </PropertyGroup>
    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
        <Cfg_2_Win32>true</Cfg_2_Win32>
        <CfgParent>Cfg_2</CfgParent>
        <Cfg_2>true</Cfg_2>
        <Base>true</Base>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Base)'!=''">

        <SanitizedProjectName>ssdatum</SanitizedProjectName>
        <DCC_SYMBOL_PLATFORM>false</DCC_SYMBOL_PLATFORM>
        <VerInfo_Locale>1043</VerInfo_Locale>
        <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>

        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>

        <DCC_UNIT_PLATFORM>false</DCC_UNIT_PLATFORM>
        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>

        <VerInfo_Keys>CompanyName=Martijn Coppoolse;FileDescription=Simple Date Screen Saver;FileVersion=1.0.0.0;InternalName=ssDatum;LegalCopyright=© Martijn Coppoolse;LegalTrademarks=;OriginalFilename=ssDatum.scr;ProductName=Eenvoudige datumschermbeveiliging;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
        <DCC_DcuOutput>..\out\DCU\$(Platform)\$(Config)</DCC_DcuOutput>
        <DCC_ExeOutput>..\out\$(Platform)\$(Config)</DCC_ExeOutput>
        <DCC_E>false</DCC_E>
        <DCC_N>false</DCC_N>
        <DCC_S>false</DCC_S>
        <DCC_F>false</DCC_F>
        <DCC_K>false</DCC_K>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Base_Win32)'!=''">
        <Debugger_RunParams>/s</Debugger_RunParams>
        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>

        <DCC_UsePackage>FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;vcldbx;FireDACPgDriver;FireDACODBCDriver;RESTBackendComponents;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;inetdb;tethering;TeeDB;inetdbbde;DBXInterBaseDriver;Tee;vclFireDAC;xmlrtl;svnui;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;FireDACCommonDriver;MetropolisUILiveTile;bindcompdbx;soaprtl;bindengine;vclactnband;vcldb;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;CustomIPTransport;vclribbon;VclSmp;FireDAC;dsnap;IndyIPServer;Intraweb;fmxase;vcl;IndyCore;VCLRESTComponents;IndyIPCommon;CloudService;CodeSiteExpressPkg;dsnapcon;FireDACIBDriver;FmxTeeUI;inet;fmxobj;FireDACMySQLDriver;soapmidas;vclx;soapserver;inetdbxpress;svn;dsnapxml;fmxdae;RESTComponents;bdertl;FireDACMSAccDriver;dbexpress;adortl;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
        <VerInfo_Locale>1033</VerInfo_Locale>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Base_Win64)'!=''">
        <DCC_UsePackage>FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;FireDACPgDriver;FireDACODBCDriver;RESTBackendComponents;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;inetdb;tethering;TeeDB;DBXInterBaseDriver;Tee;vclFireDAC;xmlrtl;DbxCommonDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;FireDACCommonDriver;MetropolisUILiveTile;bindcompdbx;soaprtl;bindengine;vclactnband;vcldb;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;CustomIPTransport;vclribbon;VclSmp;FireDAC;dsnap;IndyIPServer;Intraweb;fmxase;vcl;IndyCore;VCLRESTComponents;IndyIPCommon;CloudService;dsnapcon;FireDACIBDriver;FmxTeeUI;inet;fmxobj;FireDACMySQLDriver;soapmidas;vclx;soapserver;inetdbxpress;dsnapxml;fmxdae;RESTComponents;FireDACMSAccDriver;dbexpress;adortl;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_1)'!=''">
        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
        <DCC_DebugDCUs>true</DCC_DebugDCUs>
................................................................................
        <DCC_RemoteDebug>false</DCC_RemoteDebug>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_2)'!=''">
        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
        <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
        <DCC_DebugInformation>0</DCC_DebugInformation>
    </PropertyGroup>
    <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
        <OutputExt>.scr</OutputExt>
        <VerInfo_Locale>1033</VerInfo_Locale>
    </PropertyGroup>
    <ItemGroup>
        <DelphiCompile Include="$(MainSource)">
            <MainSource>MainSource</MainSource>
        </DelphiCompile>
        <DCCReference Include="F_Main.pas">
            <Form>frmMain</Form>