⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 delphi控件hxCalendar控件
💻 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 + -