📄 unit1.pas
字号:
{******************************************************************************}
{ @UnitName : Unit1 }
{ @Project : Project1 }
{ @Copyright : k }
{ @Author : D2000 }
{ @CreateDate : 2004-04-23 12:18:20 }
{ @LastUpdate : 2004-04-23 19:44:55 by D2000 }
{ @Description : }
{ @Comment : }
{ @History : }
{******************************************************************************}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, hxCalendar, StdCtrls, Buttons, Spin;
type
TForm1 = class(TForm)
Calendar1: ThxCalendar;
btnNextYear: TSpeedButton;
SpeedButton3: TSpeedButton;
StaticText3: TStaticText;
SpinEdit2: TSpinEdit;
SpinEdit1: TSpinEdit;
btnPrevMonth: TSpeedButton;
btnPrevYear: TSpeedButton;
TitleLabel: TLabel;
TitleLabel2: TLabel;
BitBtn1: TBitBtn;
procedure btnPrevYearClick(Sender: TObject);
procedure btnPrevMonthClick(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure SpinEdit2Change(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure btnNextYearClick(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure Calendar1Change(Sender: TObject);
private
function DaysPerMonth(AYear, AMonth: Integer): Integer; virtual; {add}
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.DaysPerMonth(AYear, AMonth: Integer): Integer;
const
DaysInMonth: array[1..12] of Integer = (31, 28, 31, 30, 31, 30, 31, 31, 30,
31, 30, 31);
begin
Result := DaysInMonth[AMonth];
if (AMonth = 2) and IsLeapYear(AYear) then Inc(Result); { leap-year Feb is special }
end;
procedure TForm1.btnPrevYearClick(Sender: TObject);
begin
if (Calendar1.Year<2099) or (Calendar1.Year>1900) then
begin
Calendar1.PrevYear;
SpinEdit1.Value := Calendar1.Year;
SpinEdit2.Value := Calendar1.Month;
end;
end;
procedure TForm1.btnPrevMonthClick(Sender: TObject);
begin
Calendar1.PrevMonth;
SpinEdit1.Value := Calendar1.Year;
SpinEdit2.Value := Calendar1.Month;
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
with SpinEdit1 do
if (Value > 1900) and (Value < 2100)
then Calendar1.Year := Value;
end;
procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
with Calendar1 do
try
Month := SpinEdit2.Value;
except
Day := DaysPerMonth(Year, SpinEdit2.Value);
Month := SpinEdit2.Value;
end;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
Calendar1.NextMonth;
SpinEdit1.Value := Calendar1.Year;
SpinEdit2.Value := Calendar1.Month;
end;
procedure TForm1.btnNextYearClick(Sender: TObject);
begin
if (Calendar1.Year<2099) or (Calendar1.Year>1900) then
begin
Calendar1.NextYear;
SpinEdit1.Value := Calendar1.Year;
SpinEdit2.Value := Calendar1.Month;
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Calendar1.CalendarDate := Now;
SpinEdit1.value := Calendar1.Year;
SpinEdit2.value := Calendar1.Month;
end;
procedure TForm1.Calendar1Change(Sender: TObject);
var
HzDate:THzDate;
begin
TitleLabel.Caption := FormatDateTime('dddddd', Calendar1.CalendarDate);
HzDate := Calendar1.ToLunar(Calendar1.CalendarDate);
TitleLabel2.Caption :=Calendar1.cyclical(HzDate.year-1900+36)+Calendar1.FormatLunarMonth(HzDate.Month,HzDate.isLeap)+Calendar1.FormatLunarDay(Hzdate.Day);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -