📄 facdate.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "FacDate.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TPickFacDate *PickFacDate;
//---------------------------------------------------------------------------
__fastcall TPickFacDate::TPickFacDate(TComponent* Owner)
: TStdBaseForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::YearSpinChange(TObject *Sender)
{
int i;
Year=YearSpin->Value;
Month=MonthSpin->Value;
if(Month<=7)
{
if((Month%2)==0)
{
if(Month==2)
{
if(IsLeapYear(Year))
Day=29;
else
Day=28;
}
else
Day=30;
}
else
Day=31;
}
else
{
if((Month%2)==0)
Day=31;
else
Day=30;
}
FDays=Day;
WeekDay=DayOfWeek(EncodeDate(Year,Month,1));
int Count=1;
int iCount=1;
for(i=0;i<ComponentCount;i++)
{
if(UpperCase((AnsiString)(Components[i]->ClassName()))== "TCHECKBOX")
{
dynamic_cast<TCheckBox *>(Components[i])->Checked=true;
dynamic_cast<TCheckBox *>(Components[i])->Enabled=false;
dynamic_cast<TCheckBox *>(Components[i])->Caption="";
if(Count<=Day)
{
if(Components[i]->Name=="CheckBox"+IntToStr(Count+WeekDay-1))
{
dynamic_cast<TCheckBox *>(Components[i])->Caption=IntToStr(Count++);
dynamic_cast<TCheckBox *>(Components[i])->Enabled=true;
int ifWeekDay=DayOfWeek(EncodeDate(Year,Month,iCount++));
if(ifWeekDay==1)
{
DateStatus[iCount-2]=3;
dynamic_cast<TCheckBox *>(Components[i])->Caption="厂休";
dynamic_cast<TCheckBox *>(Components[i])->Checked=false;
dynamic_cast<TCheckBox *>(Components[i])->Color=clBlue;
}
}
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::BitBtn1Click(TObject *Sender)
{
int i,DayCount=0;
for(i=0;i<31;i++)
{
DateStatus[i]=0;
}
for(i=0;i<ComponentCount;i++)
{
if(UpperCase((AnsiString)(Components[i]->ClassName()))== "TCHECKBOX")
{
if(dynamic_cast<TCheckBox *>(Components[i])->Enabled)
{
AnsiString sName=dynamic_cast<TCheckBox *>(Components[i])->Caption;
if(dynamic_cast<TCheckBox *>(Components[i])->Checked)
{
DateStatus[DayCount]=1;
DayCount++;
}
else
{
if(sName=="厂休")
DateStatus[DayCount]=3;
else
DateStatus[DayCount]=2;
DayCount++;
}
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::FormShow(TObject *Sender)
{
YearSpin->Value=Year;
MonthSpin->Value=Month;
YearSpinChange(Sender);
}
//---------------------------------------------------------------------------
int __fastcall TPickFacDate::GetFacYear()
{
return YearSpin->Value;
}
//---------------------------------------------------------------------------
int __fastcall TPickFacDate::GetFacMonth()
{
return MonthSpin->Value;
}
//---------------------------------------------------------------------------
int __fastcall TPickFacDate::GetDays()
{
return FDays;
}
//---------------------------------------------------------------------------
int __fastcall TPickFacDate::GetDayStatu(int i)
{
return DateStatus[i];
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::N1Click(TObject *Sender)
{
dynamic_cast<TCheckBox *>(Components[CompIndex])->Caption="停工";
dynamic_cast<TCheckBox *>(Components[CompIndex])->Checked=false;
dynamic_cast<TCheckBox *>(Components[CompIndex])->Color=clRed;
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::N2Click(TObject *Sender)
{
dynamic_cast<TCheckBox *>(Components[CompIndex])->Caption="厂休";
dynamic_cast<TCheckBox *>(Components[CompIndex])->Checked=false;
dynamic_cast<TCheckBox *>(Components[CompIndex])->Color=clBlue;
}
//---------------------------------------------------------------------------
int __fastcall TPickFacDate::GetCompIndex()
{
return FCompIndex;
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::CheckBox1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
CheckBoxComm("CheckBox1",X,Y);
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::CheckBoxComm(AnsiString strName,int X,int Y)
{
int i;
for(i=0;i<ComponentCount;i++)
{
if(Components[i]->Name==strName)
break;
}
FCompIndex=i;
int WeekDay=DayOfWeek(EncodeDate(YearSpin->Value,MonthSpin->Value,1));
AnsiString strDay=Components[FCompIndex]->Name;
strDay=strDay.SubString(9,2);
strDay=IntToStr(StrToInt(strDay)-WeekDay+1);
if(dynamic_cast<TCheckBox *>(Components[FCompIndex])->Checked)
{
//PopupMenu1->Popup(X,Y);
}
else
{
dynamic_cast<TCheckBox *>(Components[FCompIndex])->Caption=strDay;
dynamic_cast<TCheckBox *>(Components[FCompIndex])->Checked=true;
dynamic_cast<TCheckBox *>(Components[FCompIndex])->Color=clBtnFace;
}
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::CheckBox2MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
CheckBoxComm("CheckBox2",X,Y);
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::CheckBox3MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
CheckBoxComm("CheckBox3",X,Y);
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::CheckBox4MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
CheckBoxComm("CheckBox4",X,Y);
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::CheckBox5MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
CheckBoxComm("CheckBox5",X,Y);
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::CheckBox6MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
CheckBoxComm("CheckBox6",X,Y);
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::CheckBox7MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
CheckBoxComm("CheckBox7",X,Y);
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::CheckBox8MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
CheckBoxComm("CheckBox8",X,Y);
}
//---------------------------------------------------------------------------
void __fastcall TPickFacDate::CheckBox9MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -