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.

View File

@ -2312,7 +2312,7 @@ resourcestring
RsEnterYear = 'Enter year (1999-2050):';
RsInvalidYear = 'invalid year';
RsYear = '&Year...';
RsEdit = '&Edit';
RsEdit = '&Edit...';
RsColor = '&Color...';
RsNoColor = '&No Color';
RsSaveAllInfo = '&Save All Info';

View File

@ -124,19 +124,24 @@ type
procedure SetYearAlignment(const Value: TAlignment);
// Event handlers
procedure Color1Click(Sender: TObject);
procedure Copy1Click(Sender: TObject);
procedure Cut1Click(Sender: TObject);
procedure Delete1Click(Sender: TObject);
procedure DoShowHint(var HintStr: THintString; var CanShow: Boolean;
var HintInfo: THintInfo);
procedure Edit1Click(Sender: TObject);
procedure NoColor1Click(Sender: TObject);
procedure Paste1Click(Sender: TObject);
procedure SaveAsHTML(Sender: TObject);
procedure mnuBookMarkColorClick(Sender: TObject);
procedure mnuBorderColorClick(Sender: TObject);
procedure mnuClearFindClick(Sender: TObject);
procedure mnuColorClick(Sender: TObject);
procedure mnuCopyClick(Sender: TObject);
procedure mnuCutClick(Sender: TObject);
procedure mnuDeleteClick(Sender: TObject);
procedure mnuEditClick(Sender: TObject);
procedure mnuFindClick(Sender: TObject);
procedure mnuNoColorClick(Sender: TObject);
procedure mnuPasteClick(Sender: TObject);
procedure mnuSaveAsHTML(Sender: TObject);
procedure mnuSaveFound(Sender: TObject);
procedure mnuYearClick(Sender: TObject);
procedure SetupGridPop(Sender: TObject);
procedure SetYearChanged(const Value: TOnYearChanged);
procedure Year1Click(Sender: TObject);
// Utilities
procedure MakeHTML(AList: TStringList; Border, Filter: Boolean);
@ -148,13 +153,8 @@ type
procedure CreatePopup;
procedure Launch(AFile: string);
procedure SetSelectDate(const Value: TOnSelectDate);
procedure BorderColor1Click(Sender: TObject);
procedure SetInfoChanging(const Value: TOnInfoChanging);
procedure ClearBookMarks;
procedure BookMarkColor1Click(Sender: TObject);
procedure Find1Click(Sender: TObject);
procedure ClearFind1Click(Sender: TObject);
procedure SaveFound(Sender: TObject);
function IsCurrentYear: Boolean;
procedure CellMarginsChange(Sender: TObject);
@ -169,7 +169,8 @@ type
procedure DayMonthIndexToColRow(DayIndex: Integer; MonthIndex: Integer; out ACol, ARow: Integer);
protected
procedure DrawTextInCell(aCol,aRow: Integer; aRect: TRect; aState: TGridDrawState); override;
procedure DrawColumnText(aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState); override;
procedure DrawTextInCell(aCol, aRow: Integer; aRect: TRect; aState: TGridDrawState); override;
function SelectCell(ACol, ARow: Integer): Boolean; override;
procedure DblClick; override;
procedure DoPrepareCanvas(aCol,aRow:Integer; aState: TGridDrawState); override;
@ -255,8 +256,8 @@ type
property OnDblClick;
property OnClick;
property DefaultColWidth: Integer read GetDefaultColWidth write SetDefaultColWidth default 16;
property DefaultRowHeight default 18; //: Integer read GetDefaultRowHeight write SetDefaultRowHeihgt default 18;
property DefaultColWidth: Integer read GetDefaultColWidth write SetDefaultColWidth default 18;
property DefaultRowHeight default 18;
property Align;
property Anchors;
@ -315,8 +316,8 @@ begin
FirstRowHeight := 18;
FirstColWidth := 70;
DefaultColWidth := 16;
DefaultRowHeight := 18;//FFirstRowHeight;
DefaultColWidth := 18;
DefaultRowHeight := 18;
ColCount := 38;
RowCount := 13;
@ -326,11 +327,6 @@ begin
Height := 213;
Flat := true;
// THIS IS WRONG, VERY WRONG! (obones)
Application.ShowHint := True;
Application.OnShowHint := @DoShowHint;
Application.HintHidePause := 5000;
DecodeDate(Now, FCurrentYear, FCurrentMonth, FCurrentDay);
HTMLFontName := 'Arial';
@ -412,9 +408,7 @@ begin
Month := ARow;
Day := StrToInt(FYearData[ACol, ARow].DisplayText);
ADate := EncodeDate(Year, Month, Day);
DS := FormatDateTime('d-mmm-yyyy', ADate);
W := DayOfWeek(ADate);
DS := FormatSettings.ShortDayNames[W] + ' ' + DS;
DS := FormatDateTime('ddd, ddddd', ADate);
AList.Append('<tr>');
AList.Append('<td width=20%>' + DS + '</td>');
Infs := FYearData[ACol, ARow].InfoText;
@ -427,7 +421,7 @@ begin
AList.Append('</font></body></html>');
end;
procedure TJvYearGrid.SaveAsHTML(Sender: TObject);
procedure TJvYearGrid.mnuSaveAsHTML(Sender: TObject);
var
List: TStringList;
FileName: string;
@ -695,7 +689,7 @@ begin
end;
end;
procedure TJvYearGrid.Copy1Click(Sender: TObject);
procedure TJvYearGrid.mnuCopyClick(Sender: TObject);
var
S: string;
begin
@ -703,7 +697,7 @@ begin
Clipboard.AsText := S;
end;
procedure TJvYearGrid.Cut1Click(Sender: TObject);
procedure TJvYearGrid.mnuCutClick(Sender: TObject);
var
S: string;
begin
@ -714,7 +708,7 @@ begin
end;
end;
procedure TJvYearGrid.Year1Click(Sender: TObject);
procedure TJvYearGrid.mnuYearClick(Sender: TObject);
var
S: string;
AYear: Word;
@ -732,7 +726,7 @@ begin
end;
end;
procedure TJvYearGrid.Paste1Click(Sender: TObject);
procedure TJvYearGrid.mnuPasteClick(Sender: TObject);
var
S: string;
begin
@ -741,7 +735,7 @@ begin
SetCellData(Clipboard.AsText);
end;
procedure TJvYearGrid.Delete1Click(Sender: TObject);
procedure TJvYearGrid.mnuDeleteClick(Sender: TObject);
var
S: string;
begin
@ -760,7 +754,7 @@ begin
G := FGridPop;
M := TMenuItem.Create(G);
M.Caption := RsYear;
M.OnClick := @Year1Click;
M.OnClick := @mnuYearClick;
M.Tag := 1;
G.Items.Add(M);
M := TMenuItem.Create(G);
@ -768,46 +762,46 @@ begin
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsEdit;
M.OnClick := @Edit1Click;
M.OnClick := @mnuEditClick;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsColor;
M.OnClick := @Color1Click;
M.OnClick := @mnuColorClick;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsNoColor;
M.OnClick := @NoColor1Click;
M.OnClick := @mnuNoColorClick;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := cMenuBreakCaption;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsCopyItem;
M.OnClick := @Copy1Click;
M.OnClick := @mnuCopyClick;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsCutItem;
M.OnClick := @Cut1Click;
M.OnClick := @mnuCutClick;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsPasteItem;
M.OnClick := @Paste1Click;
M.OnClick := @mnuPasteClick;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsDeleteItem;
M.OnClick := @Delete1Click;
M.OnClick := @mnuDeleteClick;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := cMenuBreakCaption;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsSaveAllInfo;
M.OnClick := @SaveAsHTML;
M.OnClick := @mnuSaveAsHTML;
M.Tag := 1;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsSaveFoundInfo;
M.OnClick := @SaveFound;
M.OnClick := @mnuSaveFound;
M.Tag := 1;
G.Items.Add(M);
M := TMenuItem.Create(G);
@ -815,12 +809,12 @@ begin
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsBorderColor;
M.OnClick := @BorderColor1Click;
M.OnClick := @mnuBorderColorClick;
M.Tag := 1;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsBookMarkColor;
M.OnClick := @BookMarkColor1Click;
M.OnClick := @mnuBookMarkColorClick;
M.Tag := 1;
G.Items.Add(M);
M := TMenuItem.Create(G);
@ -828,17 +822,17 @@ begin
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsFindItem;
M.OnClick := @Find1Click;
M.OnClick := @mnuFindClick;
M.Tag := 1;
G.Items.Add(M);
M := TMenuItem.Create(G);
M.Caption := RsClearFind;
M.OnClick := @ClearFind1Click;
M.OnClick := @mnuClearFindClick;
M.Tag := 1;
G.Items.Add(M);
end;
procedure TJvYearGrid.Edit1Click(Sender: TObject);
procedure TJvYearGrid.mnuEditClick(Sender: TObject);
var
DS: string;
lCol, lRow: Integer;
@ -882,7 +876,7 @@ begin
end;
end;
procedure TJvYearGrid.Color1Click(Sender: TObject);
procedure TJvYearGrid.mnuColorClick(Sender: TObject);
var
CD: TColorDialog;
begin
@ -901,7 +895,7 @@ begin
CD.Free;
end;
procedure TJvYearGrid.NoColor1Click(Sender: TObject);
procedure TJvYearGrid.mnuNoColorClick(Sender: TObject);
begin
if (Col < 1) or (Row < 1) or (FYearData[Col, Row].DisplayText = '') then
Exit;
@ -1006,7 +1000,7 @@ begin
OnDblClick(Self)
else
if (Col > 0) and (Row > 0) and (FYearData[Col, Row].DisplayText <> '') then
Edit1Click(nil);
mnuEditClick(nil);
end;
procedure TJvYearGrid.SetBorderColor(const Value: TColor);
@ -1018,7 +1012,7 @@ begin
end;
end;
procedure TJvYearGrid.BorderColor1Click(Sender: TObject);
procedure TJvYearGrid.mnuBorderColorClick(Sender: TObject);
var
CD: TColorDialog;
begin
@ -1031,7 +1025,7 @@ begin
CD.Free;
end;
procedure TJvYearGrid.BookMarkColor1Click(Sender: TObject);
procedure TJvYearGrid.mnuBookMarkColorClick(Sender: TObject);
var
CD: TColorDialog;
begin
@ -1110,7 +1104,7 @@ begin
end;
end;
procedure TJvYearGrid.Find1Click(Sender: TObject);
procedure TJvYearGrid.mnuFindClick(Sender: TObject);
var
S: string;
lCol, lRow: Integer;
@ -1127,17 +1121,17 @@ begin
Invalidate;
end;
procedure TJvYearGrid.ClearFind1Click(Sender: TObject);
procedure TJvYearGrid.mnuClearFindClick(Sender: TObject);
begin
ClearBookMarks;
end;
procedure TJvYearGrid.Find;
begin
Find1Click(nil);
mnuFindClick(nil);
end;
procedure TJvYearGrid.SaveFound(Sender: TObject);
procedure TJvYearGrid.mnuSaveFound(Sender: TObject);
var
List: TStringList;
FileName: string;
@ -1564,6 +1558,12 @@ begin
end;
end;
procedure TJvYearGrid.DrawColumnText(ACol,ARow: Integer; ARect: TRect;
AState: TGridDrawState);
begin
DrawTextInCell(ACol, 0, ARect, AState);
end;
procedure TJvYearGrid.DrawTextInCell(ACol,ARow: Integer;
ARect: TRect; AState: TGridDrawState);
var
@ -1571,6 +1571,7 @@ var
S: String;
SExt: TSize;
textLeft: Integer;
ts: TTextStyle;
function GetTextLeft(Alignment: TAlignment; AWidth: Integer): Integer;
begin
@ -1607,7 +1608,9 @@ begin
if (DayIndex > 0) and (MonthIndex > 0) then
textLeft := GetTextLeft(DaysAlignment, SExt.CX);
TextRect(ARect, textLeft, (ARect.Top + ARect.Bottom - SExt.CY) div 2, S);
ts := TextStyle;
ts.Layout := tlCenter;
TextRect(ARect, textLeft, (ARect.Top + ARect.Bottom - SExt.CY) div 2, S, ts);
end;
end;