tvplanit: Add option for unlimited recurring events

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@8342 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2022-07-11 22:13:14 +00:00
parent e2a0b7912c
commit c93f5d5226
12 changed files with 209 additions and 125 deletions

View File

@ -1068,6 +1068,10 @@ msgstr "Rechteck"
msgid "Repeat until:"
msgstr "Wiederholen bis:"
#: vpsr.rsrecurrenceforever
msgid "Repeat forever"
msgstr "Endlos"
#: vpsr.rsrecurringlbl
msgid "Appointment recurrence:"
msgstr "Termin-Wiederholung:"
@ -1683,4 +1687,3 @@ msgstr "Unbekannte Achsen-Spezifikation: %s"
#: vpsr.sxmldecnotatbeg
msgid "The XML declaration must appear before the first element"
msgstr "Die XML-Deklaration muss vor dem ersten Element erscheinen"

View File

@ -9,7 +9,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0.1\n"
"X-Generator: Poedit 3.1\n"
#: vpsr.rs1day
msgid "1 day"
@ -1054,6 +1054,10 @@ msgstr "rectangle"
msgid "Repeat until:"
msgstr "Repeat until:"
#: vpsr.rsrecurrenceforever
msgid "Repeat forever"
msgstr "Repeat forever"
#: vpsr.rsrecurringlbl
msgid "Appointment recurrence:"
msgstr "Appointment recurrence:"
@ -1664,4 +1668,3 @@ msgstr "Unknown axis specifier: %s"
#: vpsr.sxmldecnotatbeg
msgid "The XML declaration must appear before the first element"
msgstr "The XML declaration must appear before the first element"

View File

@ -1059,6 +1059,10 @@ msgstr ""
msgid "Repeat until:"
msgstr ""
#: vpsr.rsrecurrenceforever
msgid "Repeat forever"
msgstr ""
#: vpsr.rsrecurringlbl
msgid "Appointment recurrence:"
msgstr ""

View File

@ -1074,6 +1074,10 @@ msgstr ""
msgid "Repeat until:"
msgstr "Répétez jusqu'au"
#: vpsr.rsrecurrenceforever
msgid "Repeat forever"
msgstr ""
#: vpsr.rsrecurringlbl
msgid "Appointment recurrence:"
msgstr "Rendevous à répéter:"

View File

@ -1068,6 +1068,10 @@ msgstr ""
msgid "Repeat until:"
msgstr "Herhalen totdat:"
#: vpsr.rsrecurrenceforever
msgid "Repeat forever"
msgstr ""
#: vpsr.rsrecurringlbl
msgid "Appointment recurrence:"
msgstr "Afspraak herhaling:"

View File

@ -1067,6 +1067,10 @@ msgstr "prostokąt"
msgid "Repeat until:"
msgstr "Powtarzaj do:"
#: vpsr.rsrecurrenceforever
msgid "Repeat forever"
msgstr ""
#: vpsr.rsrecurringlbl
msgid "Appointment recurrence:"
msgstr "Częstotliwość:"

View File

@ -1044,6 +1044,10 @@ msgstr ""
msgid "Repeat until:"
msgstr ""
#: vpsr.rsrecurrenceforever
msgid "Repeat forever"
msgstr ""
#: vpsr.rsrecurringlbl
msgid "Appointment recurrence:"
msgstr ""

View File

@ -1068,6 +1068,10 @@ msgstr ""
msgid "Repeat until:"
msgstr "Повторять до:"
#: vpsr.rsrecurrenceforever
msgid "Repeat forever"
msgstr ""
#: vpsr.rsrecurringlbl
msgid "Appointment recurrence:"
msgstr "Повторение встречи:"

View File

@ -253,6 +253,7 @@ resourcestring
RSRecurringLbl = 'Appointment recurrence:';
RSIntervalLbl = 'Interval (days):';
RSRecurrenceEndsLbl = 'Repeat until:';
RSRecurrenceForever = 'Repeat forever';
RSAllDayEvent = '&All Day Event';
RSNotesLbl = 'Notes:';

View File

@ -289,6 +289,8 @@ const
LineEnding2 = LineEnding + LineEnding;
FOREVER_DATE = 999999;
implementation

View File

@ -1,27 +1,26 @@
object DlgEventEdit: TDlgEventEdit
Left = 255
Height = 532
Height = 500
Top = 202
Width = 765
Width = 731
AutoSize = True
BorderStyle = bsToolWindow
Caption = 'Add / Edit Events'
ClientHeight = 532
ClientWidth = 765
ClientHeight = 500
ClientWidth = 731
OnCreate = FormCreate
OnShow = FormShow
Position = poScreenCenter
LCLVersion = '1.9.0.0'
object ButtonPanel: TPanel
Left = 0
Height = 37
Top = 495
Width = 765
Top = 463
Width = 731
Align = alBottom
AutoSize = True
BevelOuter = bvNone
ClientHeight = 37
ClientWidth = 765
ClientWidth = 731
TabOrder = 1
object ResourceNameLbl: TLabel
AnchorSideLeft.Control = ButtonPanel
@ -33,6 +32,7 @@ object DlgEventEdit: TDlgEventEdit
Width = 88
BorderSpacing.Left = 12
Caption = 'Resource Name'
Color = clDefault
Font.CharSet = ANSI_CHARSET
Font.Color = clMaroon
Font.Style = [fsBold]
@ -40,7 +40,7 @@ object DlgEventEdit: TDlgEventEdit
ParentFont = False
end
object OKBtn: TButton
Left = 616
Left = 582
Height = 25
Top = 6
Width = 66
@ -54,7 +54,7 @@ object DlgEventEdit: TDlgEventEdit
TabOrder = 0
end
object CancelBtn: TButton
Left = 688
Left = 654
Height = 25
Top = 6
Width = 71
@ -70,27 +70,27 @@ object DlgEventEdit: TDlgEventEdit
end
object Panel1: TPanel
Left = 12
Height = 483
Height = 451
Top = 12
Width = 741
Width = 707
Align = alClient
BorderSpacing.Left = 12
BorderSpacing.Top = 12
BorderSpacing.Right = 12
BevelOuter = bvNone
ClientHeight = 483
ClientWidth = 741
ClientHeight = 451
ClientWidth = 707
TabOrder = 0
object AppointmentGroupBox: TGroupBox
Left = 0
Height = 239
Top = 0
Width = 741
Width = 707
Align = alTop
AutoSize = True
Caption = 'Appointment'
ClientHeight = 219
ClientWidth = 737
ClientWidth = 703
TabOrder = 0
object Bevel1: TBevel
AnchorSideLeft.Control = AppointmentGroupBox
@ -101,7 +101,7 @@ object DlgEventEdit: TDlgEventEdit
Left = 12
Height = 3
Top = 64
Width = 681
Width = 679
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 12
BorderSpacing.Top = 12
@ -116,7 +116,7 @@ object DlgEventEdit: TDlgEventEdit
Left = 12
Height = 3
Top = 167
Width = 681
Width = 679
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 12
BorderSpacing.Top = 12
@ -126,7 +126,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Control = DescriptionEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = DescriptionEdit
Left = 71
Left = 69
Height = 15
Top = 4
Width = 63
@ -134,6 +134,7 @@ object DlgEventEdit: TDlgEventEdit
BorderSpacing.Left = 12
BorderSpacing.Right = 8
Caption = 'Description:'
Color = clDefault
ParentColor = False
end
object DescriptionEdit: TEdit
@ -141,7 +142,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Control = AppointmentGroupBox
AnchorSideRight.Control = IntervalUpDown
AnchorSideRight.Side = asrBottom
Left = 142
Left = 140
Height = 23
Top = 0
Width = 551
@ -153,13 +154,14 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Control = LocationEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = LocationEdit
Left = 85
Left = 83
Height = 15
Top = 33
Width = 49
Anchors = [akTop, akRight]
BorderSpacing.Right = 8
Caption = 'Location:'
Color = clDefault
FocusControl = LocationEdit
ParentColor = False
end
@ -169,7 +171,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Bevel3
AnchorSideRight.Side = asrBottom
Left = 142
Left = 140
Height = 23
Top = 29
Width = 214
@ -183,13 +185,14 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Control = Category
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Category
Left = 377
Left = 375
Height = 15
Top = 33
Width = 51
BorderSpacing.Left = 12
BorderSpacing.Right = 12
Caption = 'Category:'
Color = clDefault
ParentColor = False
end
object Category: TComboBox
@ -199,7 +202,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = DescriptionEdit
AnchorSideRight.Side = asrBottom
Left = 440
Left = 438
Height = 23
Top = 29
Width = 253
@ -315,7 +318,7 @@ object DlgEventEdit: TDlgEventEdit
Left = 60
Height = 19
Top = 76
Width = 89
Width = 87
BorderSpacing.Left = 12
Caption = 'All Day Event'
OnClick = CBAllDayClick
@ -325,7 +328,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Control = StartDate
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = StartDate
Left = 80
Left = 78
Height = 15
Top = 105
Width = 54
@ -333,6 +336,7 @@ object DlgEventEdit: TDlgEventEdit
Anchors = [akTop, akRight]
BorderSpacing.Right = 8
Caption = 'Start time:'
Color = clDefault
ParentColor = False
end
object EndTimeLbl: TLabel
@ -340,7 +344,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Control = EndDate
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = EndDate
Left = 84
Left = 82
Height = 15
Top = 136
Width = 50
@ -348,13 +352,14 @@ object DlgEventEdit: TDlgEventEdit
Anchors = [akTop, akRight]
BorderSpacing.Right = 8
Caption = 'End time:'
Color = clDefault
ParentColor = False
end
object StartDate: TDateEdit
AnchorSideLeft.Control = AlarmAdvance
AnchorSideTop.Control = CBAllDay
AnchorSideTop.Side = asrBottom
Left = 142
Left = 140
Height = 23
Top = 101
Width = 102
@ -409,7 +414,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = StartDate
AnchorSideRight.Side = asrBottom
Left = 142
Left = 140
Height = 23
Top = 132
Width = 102
@ -464,7 +469,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Control = CBAllDay
AnchorSideBottom.Control = EndDate
AnchorSideBottom.Side = asrBottom
Left = 365
Left = 363
Height = 79
Top = 76
Width = 3
@ -476,7 +481,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideLeft.Control = Bevel3
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = imgClock
Left = 384
Left = 382
Height = 32
Top = 76
Width = 32
@ -542,12 +547,13 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CBAllDay
AnchorSideTop.Side = asrCenter
Left = 428
Left = 426
Height = 15
Top = 78
Width = 136
BorderSpacing.Left = 12
Caption = 'Appointment Recurrence:'
Color = clDefault
ParentColor = False
end
object RecurringType: TComboBox
@ -555,7 +561,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Control = StartDate
AnchorSideRight.Control = RecurringLbl
AnchorSideRight.Side = asrBottom
Left = 428
Left = 426
Height = 23
Top = 101
Width = 136
@ -565,91 +571,26 @@ object DlgEventEdit: TDlgEventEdit
Style = csDropDownList
TabOrder = 8
end
object RepeatUntil: TDateEdit
AnchorSideTop.Control = EndDate
AnchorSideRight.Control = IntervalUpDown
AnchorSideRight.Side = asrBottom
Left = 531
Height = 23
Top = 132
Width = 162
CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
DateOrder = doNone
ButtonWidth = 23
Anchors = [akTop, akRight]
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D69E
72C4D3996EF4D19668FFCE9263FFCB8E5EFFC98A5BFFC78756FFC38452FFC384
52FFC38452FFC38452FFC38452FFC38452FFBB7742B0FFFFFF00FFFFFF00D7A1
75FFF8F2EDFFF7F0EAFFF6EDE6FFF4EAE2FFF3E7DEFFF1E4DBFFF0E2D8FFEAD6
C8FFF2E5DCFFFAF4F1FFF9F3F0FFFAF5F2FFC58A5DFDFFFFFF00FFFFFF00D9A4
7AFFF9F3EEFFEBD2BEFFFFFFFFFFEBD3BFFFFFFFFFFFEBD3C0FFFFFFFFFFEAC7
ADFFECD9CDFFF1E4DBFFF9F3F0FFF9F2EFFFC68C5FFFFFFFFF00FFFFFF00DDA8
7EFFF9F3EFFFEBD0BAFFEBD0BBFF75B57AFF75B57AFF75B57AFFEBD1BDFFEACD
B5FFFAF4F0FFEBD9CCFFF1E4DBFFFAF4F1FFC68A5CFFFFFFFF00FFFFFF00DFAA
82FFF9F3EFFFEACEB7FFFFFFFFFF75B57AFF94D49BFF74B579FFFFFFFFFFEACF
BAFFFBF6F2FFFAF3F0FFEBD8CBFFF2E6DDFFC88D5FFFFFFFFF00FFFFFF00E1AE
87FFFAF4F0FFEACBB2FFEACCB3FF75B57AFF74B579FF73B478FFEACEB7FF70B3
75FF6FB274FF6EB172FFE8C8AEFFEAD7C9FFC48654FFFFFFFF00FFFFFF00E3B1
8CFFFAF6F1FFEAC9AEFFFFFFFFFFEAC9B0FFFFFFFFFFE9CBB3FFFFFFFFFF6FB1
73FF8ED295FF6BAF6FFFFFFFFFFFF1E5DBFFC68655FFFFFFFF00FFFFFF00E5B4
8FFFFAF6F2FFE9C6AAFFE9C6ACFFEAC7ACFFE9C7ADFFE9C9AEFFE9C9B0FF6CB0
71FF6AAF6EFF68AD6DFFE8CCB5FFF2E7DEFFC88A59FFFFFFFF00FFFFFF00E7B7
94FFFBF7F4FFE9C3A6FFFFFFFFFFE8C4A9FFFFFFFFFFE9C6AAFFFFFFFFFFE8C7
ACFFFFFFFFFFE8C8B0FFFFFFFFFFF7F1EBFFCB8F5FFFFFFFFF00FFFFFF00E9BA
98FFFBF7F4FF65A4FFFF64A3FFFF62A2FFFF61A1FFFF5F9FFFFF5C9DFFFF5A9A
FFFF5798FFFF5495FFFF5294FFFFFBF7F4FFCE9364FFFFFFFF00FFFFFF00EBBD
9BFFFBF7F4FF64A4FFFF79BDFFFF75BBFFFF71B9FFFF6DB8FFFF68B3FFFF61B0
FFFF5AABFFFF54A7FFFF3B7DFFFFFBF7F4FFD1976AFFFFFFFF00FFFFFF00ECBF
9EFFFBF7F4FF65A4FFFF64A3FFFF60A0FFFF5D9EFFFF5899FFFF5496FFFF4D90
FFFF478BFFFF4284FFFF3D7FFFFFFBF7F4FFD49B6FFFFFFFFF00FFFFFF00EEC1
A1EBFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7
F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFD7A074F8FFFFFF00FFFFFF00EFC2
A37EEFC1A2E3EDC09FFFEBBE9DFFEBBC9AFFE9BA96FFE7B793FFE6B590FFE4B2
8CFFE2AF88FFE0AC84FFDDA980FFDCA57DFFDAA37ACAFFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
}
NumGlyphs = 1
MaxLength = 0
TabOrder = 11
end
object RecurrenceEndsLbl: TLabel
AnchorSideTop.Control = RepeatUntil
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = RepeatUntil
Left = 491
Height = 15
Top = 136
Width = 28
Alignment = taRightJustify
Anchors = [akTop, akRight]
BorderSpacing.Right = 12
Caption = 'Until:'
ParentColor = False
end
object IntervalLbl: TLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = RecurringLbl
AnchorSideRight.Control = IntervalUpDown
AnchorSideRight.Side = asrBottom
Left = 616
Left = 614
Height = 15
Top = 78
Width = 77
Anchors = [akTop, akRight]
BorderSpacing.Left = 36
Caption = 'Interval (days):'
Color = clDefault
ParentColor = False
end
object CustomInterval: TEdit
AnchorSideLeft.Control = RecurringType
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = StartDate
Left = 572
Left = 570
Height = 23
Top = 101
Width = 106
@ -664,7 +605,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideLeft.Control = CustomInterval
AnchorSideLeft.Side = asrBottom
AnchorSideRight.Side = asrBottom
Left = 681
Left = 679
Height = 23
Top = 101
Width = 12
@ -764,7 +705,7 @@ object DlgEventEdit: TDlgEventEdit
Left = 60
Height = 19
Top = 180
Width = 74
Width = 72
BorderSpacing.Left = 12
BorderSpacing.Right = 8
Caption = '&Reminder:'
@ -778,7 +719,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = AdvanceUpDown
AnchorSideRight.Side = asrBottom
Left = 142
Left = 140
Height = 23
Top = 178
Width = 77
@ -793,7 +734,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = StartDate
AnchorSideRight.Side = asrBottom
Left = 232
Left = 230
Height = 23
Top = 178
Width = 12
@ -810,7 +751,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = AlarmAdvance
AnchorSideTop.Side = asrCenter
Left = 256
Left = 254
Height = 23
Top = 178
Width = 93
@ -825,7 +766,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Control = AlarmAdvanceType
AnchorSideBottom.Control = AlarmAdvanceType
AnchorSideBottom.Side = asrBottom
Left = 365
Left = 363
Height = 23
Top = 178
Width = 24
@ -849,7 +790,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Control = EndDate
AnchorSideRight.Control = AlarmAdvanceType
AnchorSideRight.Side = asrBottom
Left = 256
Left = 254
Height = 23
Top = 132
Width = 93
@ -864,7 +805,7 @@ object DlgEventEdit: TDlgEventEdit
AnchorSideTop.Control = StartDate
AnchorSideRight.Control = AlarmAdvanceType
AnchorSideRight.Side = asrBottom
Left = 256
Left = 254
Height = 23
Top = 101
Width = 93
@ -873,12 +814,107 @@ object DlgEventEdit: TDlgEventEdit
TabOrder = 5
Text = 'StartTimePlaceholder'
end
object Panel2: TPanel
AnchorSideLeft.Control = ImgRecurring
AnchorSideTop.Control = RecurringType
AnchorSideTop.Side = asrBottom
Left = 382
Height = 23
Top = 132
Width = 286
AutoSize = True
BorderSpacing.Top = 8
BorderSpacing.Right = 12
BevelOuter = bvNone
ClientHeight = 23
ClientWidth = 286
TabOrder = 11
object RepeatUntil: TDateEdit
AnchorSideLeft.Control = rbRepeatUntil
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = Panel2
AnchorSideRight.Side = asrBottom
Left = 93
Height = 23
Top = 0
Width = 114
CalendarDisplaySettings = [dsShowHeadings, dsShowDayNames]
DateOrder = doNone
ButtonWidth = 23
BorderSpacing.Left = 12
Glyph.Data = {
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00D69E
72C4D3996EF4D19668FFCE9263FFCB8E5EFFC98A5BFFC78756FFC38452FFC384
52FFC38452FFC38452FFC38452FFC38452FFBB7742B0FFFFFF00FFFFFF00D7A1
75FFF8F2EDFFF7F0EAFFF6EDE6FFF4EAE2FFF3E7DEFFF1E4DBFFF0E2D8FFEAD6
C8FFF2E5DCFFFAF4F1FFF9F3F0FFFAF5F2FFC58A5DFDFFFFFF00FFFFFF00D9A4
7AFFF9F3EEFFEBD2BEFFFFFFFFFFEBD3BFFFFFFFFFFFEBD3C0FFFFFFFFFFEAC7
ADFFECD9CDFFF1E4DBFFF9F3F0FFF9F2EFFFC68C5FFFFFFFFF00FFFFFF00DDA8
7EFFF9F3EFFFEBD0BAFFEBD0BBFF75B57AFF75B57AFF75B57AFFEBD1BDFFEACD
B5FFFAF4F0FFEBD9CCFFF1E4DBFFFAF4F1FFC68A5CFFFFFFFF00FFFFFF00DFAA
82FFF9F3EFFFEACEB7FFFFFFFFFF75B57AFF94D49BFF74B579FFFFFFFFFFEACF
BAFFFBF6F2FFFAF3F0FFEBD8CBFFF2E6DDFFC88D5FFFFFFFFF00FFFFFF00E1AE
87FFFAF4F0FFEACBB2FFEACCB3FF75B57AFF74B579FF73B478FFEACEB7FF70B3
75FF6FB274FF6EB172FFE8C8AEFFEAD7C9FFC48654FFFFFFFF00FFFFFF00E3B1
8CFFFAF6F1FFEAC9AEFFFFFFFFFFEAC9B0FFFFFFFFFFE9CBB3FFFFFFFFFF6FB1
73FF8ED295FF6BAF6FFFFFFFFFFFF1E5DBFFC68655FFFFFFFF00FFFFFF00E5B4
8FFFFAF6F2FFE9C6AAFFE9C6ACFFEAC7ACFFE9C7ADFFE9C9AEFFE9C9B0FF6CB0
71FF6AAF6EFF68AD6DFFE8CCB5FFF2E7DEFFC88A59FFFFFFFF00FFFFFF00E7B7
94FFFBF7F4FFE9C3A6FFFFFFFFFFE8C4A9FFFFFFFFFFE9C6AAFFFFFFFFFFE8C7
ACFFFFFFFFFFE8C8B0FFFFFFFFFFF7F1EBFFCB8F5FFFFFFFFF00FFFFFF00E9BA
98FFFBF7F4FF65A4FFFF64A3FFFF62A2FFFF61A1FFFF5F9FFFFF5C9DFFFF5A9A
FFFF5798FFFF5495FFFF5294FFFFFBF7F4FFCE9364FFFFFFFF00FFFFFF00EBBD
9BFFFBF7F4FF64A4FFFF79BDFFFF75BBFFFF71B9FFFF6DB8FFFF68B3FFFF61B0
FFFF5AABFFFF54A7FFFF3B7DFFFFFBF7F4FFD1976AFFFFFFFF00FFFFFF00ECBF
9EFFFBF7F4FF65A4FFFF64A3FFFF60A0FFFF5D9EFFFF5899FFFF5496FFFF4D90
FFFF478BFFFF4284FFFF3D7FFFFFFBF7F4FFD49B6FFFFFFFFF00FFFFFF00EEC1
A1EBFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7
F4FFFBF7F4FFFBF7F4FFFBF7F4FFFBF7F4FFD7A074F8FFFFFF00FFFFFF00EFC2
A37EEFC1A2E3EDC09FFFEBBE9DFFEBBC9AFFE9BA96FFE7B793FFE6B590FFE4B2
8CFFE2AF88FFE0AC84FFDDA980FFDCA57DFFDAA37ACAFFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
}
NumGlyphs = 1
MaxLength = 0
TabOrder = 1
end
object rbRepeatUntil: TRadioButton
AnchorSideLeft.Control = Panel2
AnchorSideTop.Control = RepeatUntil
AnchorSideTop.Side = asrCenter
Left = 0
Height = 19
Top = 2
Width = 81
Caption = 'Repeat until'
Checked = True
TabOrder = 0
TabStop = True
end
object rbRepeatForever: TRadioButton
AnchorSideLeft.Control = RepeatUntil
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = RepeatUntil
AnchorSideTop.Side = asrCenter
Left = 231
Height = 19
Top = 2
Width = 55
BorderSpacing.Left = 24
Caption = 'forever'
TabOrder = 2
end
end
end
object NotesMemo: TMemo
Left = 0
Height = 232
Height = 200
Top = 251
Width = 741
Width = 707
Align = alClient
Constraints.MinHeight = 200
ScrollBars = ssVertical
@ -888,13 +924,13 @@ object DlgEventEdit: TDlgEventEdit
Left = 0
Height = 12
Top = 239
Width = 741
Width = 707
Align = alTop
Shape = bsSpacer
end
end
object FileDialog: TOpenDialog
left = 440
top = 352
Left = 440
Top = 352
end
end

View File

@ -72,6 +72,9 @@ type
TDlgEventEdit = class(TForm)
AlarmAdvance: TEdit;
Bevel4: TBevel;
Panel2: TPanel;
rbRepeatForever: TRadioButton;
rbRepeatUntil: TRadioButton;
StartTimePlaceholder: TEdit;
EndTimePlaceholder: TEdit;
LocationEdit: TEdit;
@ -111,7 +114,6 @@ type
CBAllDay: TCheckBox;
CustomInterval: TEdit;
imgClock: TImage;
RecurrenceEndsLbl: TLabel;
procedure AdvanceUpDownClick(Sender: TObject; Button: TUDBtnType);
procedure AlarmAdvanceChange(Sender: TObject);
procedure AlarmSetClick(Sender: TObject);
@ -417,6 +419,7 @@ end;
procedure TDlgEventEdit.PopulateDialog;
var
I: Integer;
d: TDate;
begin
{ Resource }
ResourceNameLbl.Caption := Resource.Description;
@ -424,7 +427,16 @@ begin
{ Events }
StartDate.Date := trunc(Event.StartTime);
EndDate.Date := trunc(Event.EndTime);
RepeatUntil.Date := trunc(Event.RepeatRangeEnd);
d := trunc(Event.RepeatRangeEnd);
if d = FOREVER_DATE then
begin
RepeatUntil.Text := '';
rbRepeatForever.Checked := true;
end else
begin
RepeatUntil.Date := d;
rbRepeatUntil.Checked := true;
end;
{$IFDEF NEW_TIME_EDIT}
StartTime.Time := frac(Event.StartTime);
EndTime.Time := frac(Event.EndTime);
@ -476,7 +488,10 @@ begin
Event.StartTime := StartDate.Date + StrToTime(StartTime.Text);
Event.EndTime := EndDate.Date + StrToTime(EndTime.Text);
{$ENDIF}
Event.RepeatRangeEnd := RepeatUntil.Date;
if rbRepeatForever.Checked then
Event.RepeatRangeEnd := FOREVER_DATE
else
Event.RepeatRangeEnd := RepeatUntil.Date;
Event.Description := DescriptionEdit.Text;
Event.Location := LocationEdit.Text;
Event.Notes := NotesMemo.Text;
@ -563,7 +578,8 @@ begin
AlarmSet.Caption := RSAlarmSet;
RecurringLbl.Caption := RSRecurringLbl;
IntervalLbl.Caption := RSIntervalLbl;
RecurrenceEndsLbl.Caption := RSRecurrenceEndsLbl;
rbRepeatUntil.Caption := RSRecurrenceEndsLbl;
rbRepeatForever.Caption := RSRecurrenceForever;
CBAllDay.Caption := RSAllDayEvent;
end;
{=====}
@ -627,7 +643,6 @@ begin
Unused(Button);
CustomInterval.Text := IntToStr(IntervalUpDown.Position);
end;
{=====}
procedure TDlgEventEdit.RecurringTypeChange(Sender: TObject);
begin
@ -636,8 +651,9 @@ begin
then
RepeatUntil.Date := StartDate.Date + 365;
RecurrenceEndsLbl.Enabled := (RecurringType.ItemIndex > 0);
RepeatUntil.Enabled := RecurrenceEndsLbl.Enabled;
rbRepeatUntil.Enabled := (RecurringType.ItemIndex > 0);
rbRepeatForever.Enabled := rbRepeatUntil.Enabled;
RepeatUntil.Enabled := rbRepeatUntil.Enabled and (not rbRepeatForever.Checked);
CustomInterval.Enabled := RecurringType.ItemIndex = ord(rtCustom);
IntervalLbl.Enabled := CustomInterval.Enabled;
@ -648,7 +664,6 @@ begin
CustomInterval.SetFocus;
end;
end;
{=====}
procedure TDlgEventEdit.AlarmSetClick(Sender: TObject);
begin