jvcllaz: Fix display of day names in JvYearGrid. Some cosmetic changes and some more features in JvYearGrid demo.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6964 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2019-05-28 09:54:35 +00:00
parent 56c5a46e01
commit 5e62c4ce10
6 changed files with 297 additions and 173 deletions

View File

@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="11"/>
<Version Value="12"/>
<PathDelim Value="\"/>
<General>
<Flags>
<CompatibilityMode Value="True"/>
</Flags>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="YearGrid_Demo"/>
<Scaled Value="True"/>
<ResourceType Value="res"/>
@ -13,7 +15,6 @@
<XPManifest>
<DpiAware Value="True"/>
</XPManifest>
<Icon Value="0"/>
</General>
<BuildModes Count="1">
<Item1 Name="Default" Default="True"/>
@ -43,7 +44,7 @@
<Unit1>
<Filename Value="main.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="Form1"/>
<ComponentName Value="MainForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
</Unit1>

View File

@ -16,8 +16,9 @@ begin
{$IF LCL_FULLVERSION >= 1080000}
Application.Scaled := True;
{$ENDIF}
Application.Scaled:=True;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TMainForm, MainForm);
Application.Run;
end.

View File

@ -1,23 +1,25 @@
object Form1: TForm1
Left = 310
Height = 777
Top = 127
Width = 838
object MainForm: TMainForm
Left = 361
Height = 371
Top = 215
Width = 885
AutoSize = True
Caption = 'Form1'
ClientHeight = 777
ClientWidth = 838
Caption = 'JvYearGrid Demo'
ClientHeight = 371
ClientWidth = 885
OnCreate = FormCreate
LCLVersion = '1.9.0.0'
OnShow = FormShow
LCLVersion = '2.1.0.0'
object JvYearGrid1: TJvYearGrid
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 8
Height = 248
Top = 8
Width = 734
Width = 882
HTMLBorder = False
HTMLFontName = 'Arial'
BorderColor = clCream
Year = 2018
AutoSizeOptions = [aoGrid, aoFirstColumn, aoFirstRow, aoColumns, aoRows]
FirstColWidth = 67
@ -26,52 +28,54 @@ object Form1: TForm1
CellMargins.Top = 2
CellMargins.Right = 2
CellMargins.Bottom = 2
DayFormat = dfShort
WeekendDays = [wdSaturday, wdSunday]
MonthNamesAlignment = taCenter
DayNamesAlignment = taCenter
DaysAlignment = taCenter
DefaultColWidth = 19
BorderSpacing.Around = 8
ScrollBars = ssNone
TitleStyle = tsStandard
ColWidths = (
67
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
)
RowHeights = (
19
@ -96,11 +100,12 @@ object Form1: TForm1
Left = 0
Height = 97
Top = 264
Width = 558
Width = 722
AutoSize = True
BevelOuter = bvNone
ClientHeight = 97
ClientWidth = 558
ClientWidth = 722
ParentFont = False
TabOrder = 1
object EdLeftMargin: TSpinEdit
AnchorSideLeft.Control = Panel1
@ -113,6 +118,7 @@ object Form1: TForm1
BorderSpacing.Left = 16
BorderSpacing.Top = 4
OnChange = EdLeftMarginChange
ParentFont = False
TabOrder = 0
end
object EdRightMargin: TSpinEdit
@ -125,6 +131,7 @@ object Form1: TForm1
Width = 50
BorderSpacing.Left = 4
OnChange = EdRightMarginChange
ParentFont = False
TabOrder = 1
end
object EdTopMargin: TSpinEdit
@ -138,6 +145,7 @@ object Form1: TForm1
BorderSpacing.Left = 8
BorderSpacing.Top = 4
OnChange = EdTopMarginChange
ParentFont = False
TabOrder = 2
end
object EdBottomMargin: TSpinEdit
@ -150,13 +158,14 @@ object Form1: TForm1
Width = 58
BorderSpacing.Top = 4
OnChange = EdBottomMarginChange
ParentFont = False
TabOrder = 3
end
object CbDayNamesAlignment: TComboBox
object cmbDayNamesAlignment: TComboBox
AnchorSideLeft.Control = Label1
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = EdTopMargin
Left = 363
Left = 406
Height = 23
Top = 4
Width = 100
@ -167,45 +176,48 @@ object Form1: TForm1
'taRightJustify'
'taCenter'
)
OnChange = CbDayNamesAlignmentChange
OnChange = cmbDayNamesAlignmentChange
ParentFont = False
Style = csDropDownList
TabOrder = 4
end
object Label1: TLabel
AnchorSideTop.Control = CbDayNamesAlignment
AnchorSideTop.Control = cmbDayNamesAlignment
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Label2
AnchorSideRight.Side = asrBottom
Left = 242
Height = 15
Top = 8
Width = 113
Width = 156
Anchors = [akTop, akRight]
Caption = 'DayNamesAlignment'
Caption = 'Day names alignment/format'
ParentColor = False
ParentFont = False
end
object Label2: TLabel
AnchorSideLeft.Control = EdRightMargin
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CbMonthNamesAlignment
AnchorSideTop.Control = cmbMonthNamesAlignment
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Label1
AnchorSideRight.Side = asrBottom
Left = 226
Height = 15
Top = 35
Width = 129
Width = 172
BorderSpacing.Left = 40
Caption = 'MonthNamesAlignment'
Caption = 'Month names alignment/format'
ParentColor = False
ParentFont = False
end
object CbMonthNamesAlignment: TComboBox
AnchorSideLeft.Control = CbDayNamesAlignment
AnchorSideTop.Control = CbDayNamesAlignment
object cmbMonthNamesAlignment: TComboBox
AnchorSideLeft.Control = cmbDayNamesAlignment
AnchorSideTop.Control = cmbDayNamesAlignment
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = CbDayNamesAlignment
AnchorSideRight.Control = cmbDayNamesAlignment
AnchorSideRight.Side = asrBottom
Left = 363
Left = 406
Height = 23
Top = 31
Width = 100
@ -217,30 +229,32 @@ object Form1: TForm1
'taRightJustify'
'taCenter'
)
OnChange = CbMonthNamesAlignmentChange
OnChange = cmbMonthNamesAlignmentChange
ParentFont = False
Style = csDropDownList
TabOrder = 5
end
object Label3: TLabel
AnchorSideTop.Control = CbDaysAlignment
AnchorSideTop.Control = cmbDaysAlignment
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Label1
AnchorSideRight.Side = asrBottom
Left = 274
Left = 316
Height = 15
Top = 62
Width = 81
Width = 82
Anchors = [akTop, akRight]
Caption = 'DaysAlignment'
Caption = 'Days alignment'
ParentColor = False
ParentFont = False
end
object CbDaysAlignment: TComboBox
AnchorSideLeft.Control = CbDayNamesAlignment
AnchorSideTop.Control = CbMonthNamesAlignment
object cmbDaysAlignment: TComboBox
AnchorSideLeft.Control = cmbDayNamesAlignment
AnchorSideTop.Control = cmbMonthNamesAlignment
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = CbDayNamesAlignment
AnchorSideRight.Control = cmbDayNamesAlignment
AnchorSideRight.Side = asrBottom
Left = 363
Left = 406
Height = 23
Top = 58
Width = 100
@ -253,24 +267,96 @@ object Form1: TForm1
'taRightJustify'
'taCenter'
)
OnChange = CbDaysAlignmentChange
OnChange = cmbDaysAlignmentChange
ParentFont = False
Style = csDropDownList
TabOrder = 6
end
object CbFlat: TCheckBox
AnchorSideLeft.Control = CbDayNamesAlignment
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CbMonthNamesAlignment
AnchorSideLeft.Control = lblYear
AnchorSideTop.Control = cmbMonthFormat
AnchorSideTop.Side = asrCenter
Left = 503
Left = 640
Height = 19
Top = 33
Width = 39
BorderSpacing.Left = 40
BorderSpacing.Right = 16
Caption = 'Flat'
OnChange = CbFlatChange
ParentFont = False
TabOrder = 7
end
object cmbDayFormat: TComboBox
AnchorSideLeft.Control = cmbDayNamesAlignment
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cmbDayNamesAlignment
Left = 514
Height = 23
Top = 4
Width = 100
BorderSpacing.Left = 8
ItemHeight = 15
Items.Strings = (
'dfInitial'
'dfShort'
'dfLong'
)
OnChange = cmbDayFormatChange
ParentFont = False
Style = csDropDownList
TabOrder = 8
end
object cmbMonthFormat: TComboBox
AnchorSideLeft.Control = cmbDayNamesAlignment
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cmbMonthNamesAlignment
Left = 514
Height = 23
Top = 31
Width = 100
BorderSpacing.Left = 8
ItemHeight = 15
Items.Strings = (
'mfShort'
'mfLong'
)
OnChange = cmbMonthFormatChange
ParentFont = False
Style = csDropDownList
TabOrder = 9
end
object udYear: TUpDown
AnchorSideLeft.Control = lblYear
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cmbDayFormat
AnchorSideBottom.Control = cmbDayFormat
AnchorSideBottom.Side = asrBottom
Left = 665
Height = 23
Top = 4
Width = 57
Anchors = [akTop, akLeft, akBottom]
BorderSpacing.Left = 3
Max = 3000
Min = 0
OnClick = udYearClick
Orientation = udHorizontal
Position = 0
TabOrder = 10
end
object lblYear: TLabel
AnchorSideLeft.Control = cmbDayFormat
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = cmbDayFormat
AnchorSideTop.Side = asrCenter
Left = 640
Height = 15
Top = 8
Width = 22
BorderSpacing.Left = 26
Caption = 'Year'
ParentColor = False
ParentFont = False
end
end
end

View File

@ -5,17 +5,20 @@ unit main;
interface
uses
{$IFDEF LINUX}clocale,{$ENDIF}
Classes, SysUtils, Forms, Controls, Graphics, Dialogs, Spin, StdCtrls, Grids,
ExtCtrls, JvYearGrid;
ExtCtrls, ComCtrls, JvYearGrid;
type
{ TForm1 }
{ TMainForm }
TForm1 = class(TForm)
CbDayNamesAlignment: TComboBox;
CbMonthNamesAlignment: TComboBox;
CbDaysAlignment: TComboBox;
TMainForm = class(TForm)
cmbMonthFormat: TComboBox;
cmbDayNamesAlignment: TComboBox;
cmbDayFormat: TComboBox;
cmbMonthNamesAlignment: TComboBox;
cmbDaysAlignment: TComboBox;
CbFlat: TCheckBox;
JvYearGrid1: TJvYearGrid;
EdLeftMargin: TSpinEdit;
@ -25,16 +28,22 @@ type
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
lblYear: TLabel;
Panel1: TPanel;
procedure CbDayNamesAlignmentChange(Sender: TObject);
procedure CbDaysAlignmentChange(Sender: TObject);
udYear: TUpDown;
procedure cmbDayFormatChange(Sender: TObject);
procedure cmbDayNamesAlignmentChange(Sender: TObject);
procedure cmbDaysAlignmentChange(Sender: TObject);
procedure CbFlatChange(Sender: TObject);
procedure CbMonthNamesAlignmentChange(Sender: TObject);
procedure cmbMonthFormatChange(Sender: TObject);
procedure cmbMonthNamesAlignmentChange(Sender: TObject);
procedure EdBottomMarginChange(Sender: TObject);
procedure EdLeftMarginChange(Sender: TObject);
procedure EdRightMarginChange(Sender: TObject);
procedure EdTopMarginChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure udYearClick(Sender: TObject; Button: TUDBtnType);
private
public
@ -42,72 +51,96 @@ type
end;
var
Form1: TForm1;
MainForm: TMainForm;
implementation
{$R *.lfm}
{ TForm1 }
uses
DateUtils;
procedure TForm1.CbDayNamesAlignmentChange(Sender: TObject);
{ TMainForm }
procedure TMainForm.cmbDayNamesAlignmentChange(Sender: TObject);
begin
JvYearGrid1.DayNamesAlignment := TAlignment(CbDayNamesAlignment.ItemIndex);
JvYearGrid1.DayNamesAlignment := TAlignment(cmbDayNamesAlignment.ItemIndex);
end;
procedure TForm1.CbDaysAlignmentChange(Sender: TObject);
procedure TMainForm.cmbDayFormatChange(Sender: TObject);
begin
JvYearGrid1.DaysAlignment := TAlignment(CbDaysAlignment.ItemIndex);
JvYearGrid1.DayFormat := TJvDayFormat(cmbDayFormat.ItemIndex);
end;
procedure TForm1.CbFlatChange(Sender: TObject);
procedure TMainForm.cmbDaysAlignmentChange(Sender: TObject);
begin
JvYearGrid1.DaysAlignment := TAlignment(cmbDaysAlignment.ItemIndex);
end;
procedure TMainForm.CbFlatChange(Sender: TObject);
begin
JvYearGrid1.Flat := CbFlat.Checked;
end;
procedure TForm1.CbMonthNamesAlignmentChange(Sender: TObject);
procedure TMainForm.cmbMonthFormatChange(Sender: TObject);
begin
JvYearGrid1.MonthNamesAlignment := TAlignment(CbMonthNamesAlignment.ItemIndex);
JvYearGrid1.MonthFormat := TJvMonthFormat(cmbMonthFormat.ItemIndex);
end;
procedure TForm1.EdBottomMarginChange(Sender: TObject);
procedure TMainForm.cmbMonthNamesAlignmentChange(Sender: TObject);
begin
JvYearGrid1.MonthNamesAlignment := TAlignment(cmbMonthNamesAlignment.ItemIndex);
end;
procedure TMainForm.EdBottomMarginChange(Sender: TObject);
begin
JvYearGrid1.CellMargins.Bottom := EdBottomMargin.Value;
end;
procedure TForm1.EdLeftMarginChange(Sender: TObject);
procedure TMainForm.EdLeftMarginChange(Sender: TObject);
begin
JvYearGrid1.CellMargins.Left := EdLeftMargin.Value;
end;
procedure TForm1.EdRightMarginChange(Sender: TObject);
procedure TMainForm.EdRightMarginChange(Sender: TObject);
begin
JvYearGrid1.CellMargins.Right := EdRightMargin.Value;
end;
procedure TForm1.EdTopMarginChange(Sender: TObject);
procedure TMainForm.EdTopMarginChange(Sender: TObject);
begin
JvYearGrid1.CellMargins.Top := EdTopMargin.Value;
end;
procedure TForm1.FormCreate(Sender: TObject);
procedure TMainForm.FormCreate(Sender: TObject);
begin
JvYearGrid1.Year := YearOf(Date);
EdLeftMargin.Value := JvYearGrid1.CellMargins.Left;
EdRightMargin.Value := JvYearGrid1.CellMargins.Right;
EdTopMargin.Value := JvYearGrid1.CellMargins.Top;
EdBottomMargin.Value := JvYearGrid1.CellMargins.Bottom;
CbDayNamesAlignment.ItemIndex := ord(JvYearGrid1.DayNamesAlignment);
CbMonthNamesAlignment.ItemIndex := ord(JvYearGrid1.MonthNamesAlignment);
CbDaysAlignment.ItemIndex := ord(JvYearGrid1.DaysAlignment);
cmbDayNamesAlignment.ItemIndex := ord(JvYearGrid1.DayNamesAlignment);
cmbMonthNamesAlignment.ItemIndex := ord(JvYearGrid1.MonthNamesAlignment);
cmbDaysAlignment.ItemIndex := ord(JvYearGrid1.DaysAlignment);
cmbDayFormat.ItemIndex := ord(JvYearGrid1.DayFormat);
cmbMonthFormat.ItemIndex := ord(JvYearGrid1.MonthFormat);
udYear.Position := JvYearGrid1.Year;
CbFlat.Checked := JvYearGrid1.Flat;
end;
initialization
{$IFDEF WINDOWS}
GetLocaleFormatSettings(1033, FormatSettings);
{$ENDIF}
procedure TMainForm.FormShow(Sender: TObject);
begin
AutoSize := true;
end;
procedure TMainForm.udYearClick(Sender: TObject; Button: TUDBtnType);
begin
JvYearGrid1.Year := udYear.Position;
end;
end.