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

📄 dtpicker.cpp

📁 InfoPower_Studio 2007 v5.0.1.3 banben
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop

#include "dtpicker.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Wwdatsrc"
#pragma link "wwdbdatetimepicker"
#pragma link "wwDBNavigator"
#pragma link "wwriched"
#pragma link "wwSpeedButton"
#pragma link "Wwtable"
#pragma link "wwclearpanel"
#pragma resource "*.dfm"
TDateTimePickerForm *DateTimePickerForm;
//---------------------------------------------------------------------------
__fastcall TDateTimePickerForm::TDateTimePickerForm(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TDateTimePickerForm::DropdownOptionsClick(TObject *Sender)
{
   TwwMonthOption Option;
   TwwMonthOptions TempOptions;
   TwwDBDateTimePicker * MyDTP;
   if (Sender == ShowTodayCheckbox) Option = mdoNoToday;
   else if (Sender == ShowTodayCircleCheckbox) Option = mdoNoTodayCircle;
   else Option = mdoWeekNumbers;

   for (int i=0;i<=ComponentCount-1;i++)
   {
      MyDTP = dynamic_cast<TwwDBDateTimePicker *>(Components[i]);
      if (MyDTP) {
         TempOptions = MyDTP->CalendarAttributes->Options;
         if ((Sender == ShowTodayCheckbox) || (Sender ==ShowTodayCircleCheckbox))
         {
            if (((TCheckBox *)Sender)->Checked) TempOptions >> Option;
            else TempOptions << Option;
         }
         else {
            if (((TCheckBox *)Sender)->Checked) TempOptions << Option;
            else TempOptions >> Option;
         }
         MyDTP->CalendarAttributes->Options = TempOptions;
      }
   }
}
//---------------------------------------------------------------------------
void __fastcall TDateTimePickerForm::RadioGroup1Click(TObject *Sender)
{
   TwwDBDateTimePicker * MyDTP;
   TwwMonthOptions TempOptions;
   for (int i=0;i<=ComponentCount-1;i++)
   {
      MyDTP = dynamic_cast<TwwDBDateTimePicker *>(Components[i]);
      if (MyDTP) {
         TempOptions = MyDTP->CalendarAttributes->Options;
         if (((TRadioGroup *)Sender)->ItemIndex==0) TempOptions >> mdoDayState;
         else TempOptions << mdoDayState;
         MyDTP->CalendarAttributes->Options = TempOptions;
      }
   }

}
//---------------------------------------------------------------------------
void __fastcall TDateTimePickerForm::ComboBox1Change(TObject *Sender)
{
   TwwDBDateTimePicker * MyDTP;
   for (int i=0;i<=ComponentCount-1;i++)
   {
      MyDTP = dynamic_cast<TwwDBDateTimePicker *>(Components[i]);
      if (MyDTP) {
         if (ComboBox1->Text == "Center") MyDTP->CalendarAttributes->Alignment = wwdtaCenter;
         else if (ComboBox1->Text == "Right") MyDTP->CalendarAttributes->Alignment = wwdtaRight;
         else MyDTP->CalendarAttributes->Alignment = wwdtaLeft;
      }
   }
}
//---------------------------------------------------------------------------
// Holiday is not based on date but based on day of week
int SpecialHoliday(int WeekNo, int DayNo, int Month, int Day, int Year)
{
   int curdayindex= DayOfWeek(StrToDate(IntToStr(Month)+"/1/"+IntToStr(Year)));

   if ((curdayindex<=DayNo) && (Day == DayNo-curdayindex+7*(WeekNo-1)+1)) return true;
   else if ((curdayindex>DayNo) && (Day == 8-(curdayindex-DayNo)+7*(WeekNo-1))) return true;
   else return false;
}

void __fastcall TDateTimePickerForm::wwDBDateTimePicker2CalcBoldDay(TObject *Sender,
      TDate ADate, int Month, int Day, int Year, bool &Accept)
{
   Accept = false;
   int i = DayOfWeek(ADate);
   switch (RadioGroup1->ItemIndex) {
      case 1:
         if (DayOfWeek(ADate)==1) Accept = true;
         else if (DayOfWeek(ADate)==7) Accept = true;
         break;

      case 2:
         if (Month == 1) {
            if (Day==1) Accept = true; // New Years Day
            else if (SpecialHoliday(3,2, Month, Day, Year)) Accept = true; //Birthday of Martin Luther King, third Monday in January.
         }
         else if (Month==2){
            Accept = (
            (Day==2) || // GroundHog Day
            (Day==12) || // Lincoln's Birthday
            (Day==14) || // Valentines Day
            SpecialHoliday(3,2, Month, Day, Year)); //Washington's Birthday, third Monday in February.
         }
         else if (Month==3){
            Accept = (Day==17); // St.Patricks Day
         }
         else if (Month==4){
            Accept = (Day==1); // April Fool's Day
         }
         else if (Month==5){
            Accept = (
               SpecialHoliday(2,1, Month, Day, Year) ||  //Mother's Day
               ((i==2) && ((31-Day)<=6))); //Memorial Day - Last Monday in May
         }
         else if (Month==6){
            Accept = (
                (Day==14)  ||       // Flag Day
                SpecialHoliday(3,1, Month, Day, Year) ); //Father's Day - 3rd Sunday in June
         }
         else if (Month==7){
            Accept = (Day==4); // Independence Day
         }
         else if (Month==8){
         }
         else if (Month==9){
            if (SpecialHoliday(1,2, Month, Day, Year)) Accept = true;  //Labor Day - first Monday in September.
         }
         else if (Month==10){
            Accept = ((Day==31) || // Halloween
                       SpecialHoliday(2,2, Month, Day, Year)); //Columbus Day second Monday in October.
         }
         else if (Month==11){
            Accept = ((Day==11) || // Veterans Day
                       SpecialHoliday(4,5, Month, Day, Year)); // Thanksgiving
         }
         else if (Month==12){
            Accept = (Day==25);
         }
         break;

      case 3:
         if (SpecialHoliday(1,6, Month, Day, Year) ||
             SpecialHoliday(3,6, Month, Day, Year)) Accept =True;
         break;
   }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -