You've already forked lazarus-ccr
jvcllaz: In JvTimeFramework demo, make first day of week and prime time settings user-configurable.
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7116 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -22,9 +22,9 @@ object MainForm: TMainForm
|
||||
Height = 515
|
||||
Top = 73
|
||||
Width = 477
|
||||
ActivePage = TabSheet3
|
||||
ActivePage = TabSheet1
|
||||
Align = alClient
|
||||
TabIndex = 2
|
||||
TabIndex = 0
|
||||
TabOrder = 0
|
||||
object TabSheet1: TTabSheet
|
||||
Caption = 'Day View'
|
||||
|
@ -161,6 +161,13 @@ begin
|
||||
JvTFDays1.FancyRowHdrAttr.Hr2400 := Hr2400;
|
||||
JvTFDays1.SelFancyRowHdrAttr.Hr2400 := Hr2400;
|
||||
JvTFDaysPrinter1.FancyRowHdrAttr.Hr2400 := Hr2400;
|
||||
|
||||
JvTFWeeks1.StartOfWeek := FirstDayOfWeek;
|
||||
JvTFMonths1.StartOfWeek := FirstDayOfWeek;
|
||||
|
||||
JvTFDays1.PrimeTime.StartTime := PrimeTimeStart;
|
||||
JvTFDays1.PrimeTime.EndTime := PrimeTimeEnd;
|
||||
JvTFDays1.PrimeTime.Color := PrimeTimeColor;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -779,6 +786,10 @@ begin
|
||||
DaysCombo.ItemIndex := ini.ReadInteger('MainForm', 'DaysCombo', 0);
|
||||
|
||||
GlobalSettings.Hr2400 := ini.ReadBool('Settings', 'Hr2400', GlobalSettings.Hr2400);
|
||||
GlobalSettings.FirstDayOfWeek := TTFDayofWeek(ini.ReadInteger('Settings', 'FirstDayOfWeek', ord(GlobalSettings.FirstDayOfWeek)));
|
||||
GlobalSettings.PrimeTimeStart := ini.ReadTime('Settings', 'PrimeTimeStart', GlobalSettings.PrimeTimeStart);
|
||||
GlobalSettings.PrimeTimeEnd := ini.ReadTime('Settings', 'PrimeTimeEnd', GlobalSettings.PrimeTimeEnd);
|
||||
GlobalSettings.PrimeTimeColor := TColor(ini.ReadInteger('Settings', 'PrimeTimeColor', Integer(GlobalSettings.PrimeTimeColor)));
|
||||
ApplySettings;
|
||||
finally
|
||||
ini.Free;
|
||||
@ -798,6 +809,10 @@ begin
|
||||
ini.WriteInteger('MainForm', 'DaysCombo', DaysCombo.ItemIndex);
|
||||
|
||||
ini.WriteBool('Settings', 'Hr2400', GlobalSettings.Hr2400);
|
||||
ini.WriteInteger('Settings', 'FirstDayOfWeek', ord(GlobalSettings.FirstDayOfWeek));
|
||||
ini.WriteTime('Settings', 'PrimeTimeStart', GlobalSettings.PrimeTimeStart);
|
||||
ini.WriteTime('Settings', 'PrimeTimeEnd', GlobalSettings.PrimeTimeEnd);
|
||||
ini.WriteInteger('Settings', 'PrimeTimeColor', GlobalSettings.PrimeTimeColor);
|
||||
finally
|
||||
ini.Free;
|
||||
end;
|
||||
|
@ -7,7 +7,9 @@ object SettingsForm: TSettingsForm
|
||||
ClientHeight = 299
|
||||
ClientWidth = 403
|
||||
OnClose = FormClose
|
||||
OnCreate = FormCreate
|
||||
OnShow = FormShow
|
||||
Position = poMainFormCenter
|
||||
LCLVersion = '2.1.0.0'
|
||||
object ButtonPanel1: TButtonPanel
|
||||
Left = 6
|
||||
@ -36,6 +38,17 @@ object SettingsForm: TSettingsForm
|
||||
ClientHeight = 253
|
||||
ClientWidth = 403
|
||||
TabOrder = 1
|
||||
object Bevel1: TBevel
|
||||
AnchorSideTop.Control = edPrimeTimeStart
|
||||
AnchorSideBottom.Control = edPrimeTimeEnd
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 288
|
||||
Height = 50
|
||||
Top = 62
|
||||
Width = 37
|
||||
Anchors = [akTop, akLeft, akBottom]
|
||||
Shape = bsSpacer
|
||||
end
|
||||
object cbTimeFormat: TComboBox
|
||||
AnchorSideTop.Control = Panel1
|
||||
Left = 132
|
||||
@ -67,5 +80,108 @@ object SettingsForm: TSettingsForm
|
||||
FocusControl = cbTimeFormat
|
||||
ParentColor = False
|
||||
end
|
||||
object lblFirstDayOfWeek: TLabel
|
||||
AnchorSideTop.Control = cbFirstDayOfWeek
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = lblTimeFormat
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 36
|
||||
Height = 15
|
||||
Top = 39
|
||||
Width = 88
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'First day of week'
|
||||
FocusControl = cbFirstDayOfWeek
|
||||
ParentColor = False
|
||||
end
|
||||
object cbFirstDayOfWeek: TComboBox
|
||||
AnchorSideLeft.Control = cbTimeFormat
|
||||
AnchorSideTop.Control = cbTimeFormat
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = cbTimeFormat
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 132
|
||||
Height = 23
|
||||
Top = 35
|
||||
Width = 124
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 4
|
||||
ItemHeight = 15
|
||||
Style = csDropDownList
|
||||
TabOrder = 1
|
||||
end
|
||||
object edPrimeTimeStart: TTimeEdit
|
||||
AnchorSideLeft.Control = cbTimeFormat
|
||||
AnchorSideTop.Control = cbFirstDayOfWeek
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 132
|
||||
Height = 23
|
||||
Top = 62
|
||||
Width = 103
|
||||
ButtonWidth = 23
|
||||
BorderSpacing.Top = 4
|
||||
NumGlyphs = 1
|
||||
MaxLength = 0
|
||||
TabOrder = 2
|
||||
Text = 'edPrimeTimeStart'
|
||||
end
|
||||
object edPrimeTimeEnd: TTimeEdit
|
||||
AnchorSideLeft.Control = cbTimeFormat
|
||||
AnchorSideTop.Control = edPrimeTimeStart
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 132
|
||||
Height = 23
|
||||
Top = 89
|
||||
Width = 103
|
||||
ButtonWidth = 23
|
||||
BorderSpacing.Top = 4
|
||||
NumGlyphs = 1
|
||||
MaxLength = 0
|
||||
TabOrder = 3
|
||||
Text = 'edPrimeTimeEnd'
|
||||
end
|
||||
object lblPrimeTimeStart: TLabel
|
||||
AnchorSideTop.Control = edPrimeTimeStart
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = lblTimeFormat
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 40
|
||||
Height = 15
|
||||
Top = 66
|
||||
Width = 84
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Prime time start'
|
||||
ParentColor = False
|
||||
end
|
||||
object lblPrimeTimeEnd: TLabel
|
||||
AnchorSideTop.Control = edPrimeTimeEnd
|
||||
AnchorSideTop.Side = asrCenter
|
||||
AnchorSideRight.Control = lblTimeFormat
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 43
|
||||
Height = 15
|
||||
Top = 93
|
||||
Width = 81
|
||||
Anchors = [akTop, akRight]
|
||||
Caption = 'Prime time end'
|
||||
ParentColor = False
|
||||
end
|
||||
object clbPrimeTimeColor: TColorButton
|
||||
AnchorSideLeft.Control = edPrimeTimeStart
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = Bevel1
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 239
|
||||
Height = 25
|
||||
Top = 75
|
||||
Width = 104
|
||||
BorderSpacing.Left = 4
|
||||
BorderWidth = 2
|
||||
ButtonColorAutoSize = False
|
||||
ButtonColorSize = 16
|
||||
ButtonColor = clBlack
|
||||
Caption = 'Prime time'
|
||||
Margin = 4
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -6,21 +6,44 @@ interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ButtonPanel, StdCtrls,
|
||||
ExtCtrls, JvTFDays;
|
||||
ExtCtrls, EditBtn, JvTFUtils, JvTFDays;
|
||||
|
||||
type
|
||||
TGlobalSettings = record
|
||||
Hr2400: Boolean;
|
||||
Hr2400: Boolean; // 24 hour or 12 hour AM/PM format
|
||||
FirstDayOfWeek: TTFDayOfWeek;
|
||||
PrimeTimeStart: TTime;
|
||||
PrimeTimeEnd: TTime;
|
||||
PrimeTimeColor: TColor;
|
||||
end;
|
||||
|
||||
var
|
||||
GlobalSettings: TGlobalSettings = (
|
||||
Hr2400: false;
|
||||
FirstDayOfWeek: dowSunday;
|
||||
PrimeTimeStart: 8 * ONE_HOUR;
|
||||
PrimeTimeEnd: 17 * ONE_HOUR;
|
||||
PrimeTimeColor: $00C4FFFF;
|
||||
);
|
||||
|
||||
type
|
||||
{ TSettingsForm }
|
||||
|
||||
TSettingsForm = class(TForm)
|
||||
Bevel1: TBevel;
|
||||
ButtonPanel1: TButtonPanel;
|
||||
cbTimeFormat: TComboBox;
|
||||
cbFirstDayOfWeek: TComboBox;
|
||||
clbPrimeTimeColor: TColorButton;
|
||||
lblPrimeTimeStart: TLabel;
|
||||
lblPrimeTimeEnd: TLabel;
|
||||
lblFirstDayOfWeek: TLabel;
|
||||
lblTimeFormat: TLabel;
|
||||
Panel1: TPanel;
|
||||
edPrimeTimeStart: TTimeEdit;
|
||||
edPrimeTimeEnd: TTimeEdit;
|
||||
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure FormShow(Sender: TObject);
|
||||
procedure OKButtonClick(Sender: TObject);
|
||||
private
|
||||
@ -33,10 +56,6 @@ type
|
||||
var
|
||||
SettingsForm: TSettingsForm;
|
||||
|
||||
GlobalSettings: TGlobalSettings = (
|
||||
Hr2400: false
|
||||
);
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.lfm}
|
||||
@ -44,6 +63,10 @@ implementation
|
||||
procedure TSettingsForm.ControlsToSettings;
|
||||
begin
|
||||
GlobalSettings.Hr2400 := cbTimeFormat.ItemIndex = 0;
|
||||
GlobalSettings.FirstDayOfWeek := TTFDayOfWeek(cbFirstDayOfWeek.ItemIndex);
|
||||
GlobalSettings.PrimeTimeStart := frac(edPrimeTimeStart.Time);
|
||||
GlobalSettings.PrimeTimeEnd := frac(edPrimeTimeEnd.Time);
|
||||
GlobalSettings.PrimeTimeColor := clbPrimeTimeColor.ButtonColor;
|
||||
end;
|
||||
|
||||
procedure TSettingsForm.SettingsToControls;
|
||||
@ -52,6 +75,10 @@ begin
|
||||
cbTimeFormat.ItemIndex := 0
|
||||
else
|
||||
cbTimeFormat.ItemIndex := 1;
|
||||
cbFirstDayOfWeek.ItemIndex := ord(GlobalSettings.FirstDayOfWeek);
|
||||
edPrimeTimeStart.Time := GlobalSettings.PrimeTimeStart;
|
||||
edPrimeTimeEnd.Time := GlobalSettings.PrimeTimeEnd;
|
||||
clbPrimeTimeColor.ButtonColor := GlobalSettings.PrimeTimeColor;
|
||||
end;
|
||||
|
||||
procedure TSettingsForm.FormClose(Sender: TObject;
|
||||
@ -61,6 +88,20 @@ begin
|
||||
ControlsToSettings;
|
||||
end;
|
||||
|
||||
procedure TSettingsForm.FormCreate(Sender: TObject);
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
cbFirstDayOfWeek.Items.BeginUpdate;
|
||||
try
|
||||
cbFirstDayOfWeek.Clear;
|
||||
for i:=1 to 7 do
|
||||
cbFirstDayOfWeek.Items.Add(DefaultFormatSettings.LongDayNames[i]);
|
||||
finally
|
||||
cbFirstDayOfWeek.Items.EndUpdate;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TSettingsForm.FormShow(Sender: TObject);
|
||||
begin
|
||||
FOKPressed := false;
|
||||
|
Reference in New Issue
Block a user