unit FrameDateSel; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxContainer, cxEdit, Vcl.ComCtrls, dxCore, cxDateUtils, dxSkinsCore, dxSkinsDefaultPainters, dxSkinWXI, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, Vcl.StdCtrls, Vcl.Menus, cxButtons, Vcl.ExtCtrls, DateUtils, dxSkinBasic, dxSkinBlack, dxSkinBlue, dxSkinBlueprint, dxSkinCaramel, dxSkinCoffee, dxSkinDarkroom, dxSkinDarkSide, dxSkinDevExpressDarkStyle, dxSkinDevExpressStyle, dxSkinFoggy, dxSkinGlassOceans, dxSkinHighContrast, dxSkiniMaginary, dxSkinLilian, dxSkinLiquidSky, dxSkinLondonLiquidSky, dxSkinMcSkin, dxSkinMetropolis, dxSkinMetropolisDark, dxSkinMoneyTwins, dxSkinOffice2007Black, dxSkinOffice2007Blue, dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver, dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver, dxSkinOffice2013DarkGray, dxSkinOffice2013LightGray, dxSkinOffice2013White, dxSkinOffice2016Colorful, dxSkinOffice2016Dark, dxSkinOffice2019Black, dxSkinOffice2019Colorful, dxSkinOffice2019DarkGray, dxSkinOffice2019White, dxSkinPumpkin, dxSkinSeven, dxSkinSevenClassic, dxSkinSharp, dxSkinSharpPlus, dxSkinSilver, dxSkinSpringtime, dxSkinStardust, dxSkinSummer2008, dxSkinTheAsphaltWorld, dxSkinTheBezier, dxSkinValentine, dxSkinVisualStudio2013Blue, dxSkinVisualStudio2013Dark, dxSkinVisualStudio2013Light, dxSkinVS2010, dxSkinWhiteprint, dxSkinXmas2008Blue; type TfrmFrameDateSel = class(TFrame) lbl1: TLabel; lbl2: TLabel; BegDate: TcxDateEdit; EndDate: TcxDateEdit; cxButton1: TcxButton; cxButton2: TcxButton; cxButton3: TcxButton; cbbType: TcxComboBox; cxButton4: TcxButton; cxButton5: TcxButton; procedure cxButton4Click(Sender: TObject); procedure cxButton1Click(Sender: TObject); procedure cxButton5Click(Sender: TObject); procedure cxButton2Click(Sender: TObject); procedure cxButton3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; implementation //uses // U_RTFun; {$R *.dfm} procedure TfrmFrameDateSel.cxButton1Click(Sender: TObject); begin BegDate.Date := StartOfTheMonth(strToDate(FormatDateTime('yyyy-MM-dd', Now))); EndDate.Date := EndOfTheMonth(strToDate(FormatDateTime('yyyy-MM-dd', Now))); end; procedure TfrmFrameDateSel.cxButton2Click(Sender: TObject); begin if cbbType.Text = '日' then begin BegDate.Date := BegDate.Date - 1; EndDate.Date := EndDate.Date - 1; end; if cbbType.Text = '月' then begin BegDate.Date := StartOfTheMonth(StartOfTheMonth(EndDate.Date) - 1); EndDate.Date := EndOfTheMonth(StartOfTheMonth(EndDate.Date) - 1); end; if cbbType.Text = '年' then begin BegDate.Date := StartOfTheMonth(strToDate(FormatDateTime('yyyy-01-01', strToDate(FormatDateTime('yyyy-01-01', EndDate.Date)) - 1))); EndDate.Date := EndOfTheMonth(strToDate(FormatDateTime('yyyy-12-01', BegDate.Date))); end; end; procedure TfrmFrameDateSel.cxButton3Click(Sender: TObject); begin if cbbType.Text = '日' then begin BegDate.Date := BegDate.Date + 1; EndDate.Date := EndDate.Date + 1; end; if cbbType.Text = '月' then begin BegDate.Date := EndOfTheMonth(EndDate.Date) + 1; EndDate.Date := EndOfTheMonth(EndOfTheMonth(EndDate.Date) + 1); end; if cbbType.Text = '年' then begin BegDate.Date := StartOfTheMonth(strToDate(FormatDateTime('yyyy-01-01', strToDate(FormatDateTime('yyyy-12-31', EndDate.Date)) + 1))); EndDate.Date := EndOfTheMonth(strToDate(FormatDateTime('yyyy-12-01', BegDate.Date))); end; end; procedure TfrmFrameDateSel.cxButton4Click(Sender: TObject); begin BegDate.Date := strToDate(FormatDateTime('yyyy-MM-dd', Now)); EndDate.Date := strToDate(FormatDateTime('yyyy-MM-dd', Now)); end; procedure TfrmFrameDateSel.cxButton5Click(Sender: TObject); begin BegDate.Date := StartOfTheMonth(strToDate(FormatDateTime('yyyy-01-01', Now))); EndDate.Date := EndOfTheMonth(strToDate(FormatDateTime('yyyy-12-01', Now))); end; end.