亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? umonthpanel.~pas

?? 支持公歷、農歷及公歷轉農歷使用公式法(不是查表法)的日歷控件
?? ~PAS
?? 第 1 頁 / 共 3 頁
字號:
  end;
end;

procedure TMonthPanel.SetDayInfor(DayIndex: Integer; DayInfor: string);
begin
  if DayIndex in [1..31] then
  begin
    FDayInfors[DayIndex] := DayInfor;
    FMonthGrid.Cells[FDayCells[DayIndex].X,FDayCells[DayIndex].Y] := IntToStr(DayIndex);

    if FCellDays[FDayCells[DayIndex].X,FDayCells[DayIndex].Y] = FChineseNewYear then
      FMonthGrid.Cells[FDayCells[DayIndex].X,FDayCells[DayIndex].Y] :=
        FMonthGrid.Cells[FDayCells[DayIndex].X,FDayCells[DayIndex].Y] + '[春節]'
    else if FDayInfors[DayIndex]<>'' then
      FMonthGrid.Cells[FDayCells[DayIndex].X,FDayCells[DayIndex].Y] :=
        FMonthGrid.Cells[FDayCells[DayIndex].X,FDayCells[DayIndex].Y] +
        CALENDARSPLITE+FDayInfors[DayIndex];
  end;
end;

procedure TMonthPanel.ClearCellDays;
var
  i,j:Integer;
begin
  for i := 0 to 6 do
  begin
    for j := 1 to 6 do
    begin
      FCellDays[i,j] := 0;
    end;
  end;
end;

procedure TMonthPanel.ClearDayCells;
var
  i:Integer;
begin
  for i := 1 to 31 do
  begin
    FDayCells[i].X := 0;
    FDayCells[i].Y := 0;
  end;


end;

procedure TMonthPanel.MonthGridMouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
var
  lChineseDate:TChineseDate;
  lDate:TDate;
  i:Integer;
begin
  if FCellDays[FMonthGrid.MouseCoord(X,Y).X,FMonthGrid.MouseCoord(X,Y).Y] = 0 then
  begin
    Self.Hint := FMonthCaptionPanel.Caption;
    exit;
  end;

  lChineseDate:=ChineseDate(FCellDays[FMonthGrid.MouseCoord(X,Y).X,FMonthGrid.MouseCoord(X,Y).Y]);
  Self.Hint := CHINESESTEM[Ord(lChineseDate.yearcycle.stem)]+
               CHINESEZODIAC[Ord(lChineseDate.yearcycle.zodiac)]+'('+
               CHINESEZODIACEX[Ord(lChineseDate.yearcycle.zodiac)]+')年'+#13+
               CHINESEMONTHNAME[lChineseDate.month-1]+
               CHINESEDAYNAME[lChineseDate.day-1];

  lDate := FCellDays[FMonthGrid.MouseCoord(X,Y).X,FMonthGrid.MouseCoord(X,Y).Y];
  //公歷節日
  for i := Low(SUNHOLIDY) to High(SUNHOLIDY) do
  begin
    if (StrToInt(LeftStr(SUNHOLIDY[i],2)) = MonthOf(lDate)) and
       (StrToInt(MidStr(SUNHOLIDY[i],3,2)) = DayOf(lDate)) then
    Self.Hint := Self.Hint +#13+ RightStr(SUNHOLIDY[i],Length(SUNHOLIDY[i])-4);
  end;

  //農歷節日
  for i := Low(MONTHHOLIDY) to High(MONTHHOLIDY) do
  begin
    if (StrToInt(LeftStr(MONTHHOLIDY[i],2)) = lChineseDate.month) and
       (StrToInt(MidStr(MONTHHOLIDY[i],3,2)) = lChineseDate.day) then
    Self.Hint := Self.Hint +#13+ RightStr(MONTHHOLIDY[i],Length(MONTHHOLIDY[i])-4);
  end;

end;

procedure TMonthPanel.MonthGridDblClick(Sender: TObject);
var
  i,j:Integer;
  NextOrder:Integer;
  ti1,ti2:Integer;
begin
  with FMonthGrid do
  begin
    for i := Selection.Left to Selection.Right do
    begin
      for j := Selection.Top to Selection.Bottom do
      begin
        if FCellDays[i,j]<>0 then
        begin
          ti1 := Ord(FDaySigns[DayOf(FCellDays[i,j])])+1;
          ti2 := Ord(High(TDaySign)) - Ord(Low(TDaySign));

          {如果當天是周末,則在工作日、法定假日、周末間循環,
          否則只在工作日、法定假日間循環}
          if DayOfTheWeek(FCellDays[i,j]) in [6..7] then
            ti2 := ti2+1;
            
          NextOrder := ti1 Mod ti2;

          FDaySigns[DayOf(FCellDays[i,j])] := TDaySign(NextOrder);
          if Assigned(FOnDaySignChanged) then
            FOnDaySignChanged(Self,FCellDays[i,j],FDaySigns[DayOf(FCellDays[i,j])]);
        end;
      end;
    end;
  end;
  FMonthGrid.Invalidate;
end;

procedure TMonthPanel.PreparePopMenu;
var
  item:TMenuItem;
begin
  item := TMenuItem.Create(Self);
  item.Caption := '設定為法定節日(&H)';
  item.OnClick := ToHolidayPopupMenuClicked;
  FGridPopupMenu.Items.Add(Item);

  item := TMenuItem.Create(Self);
  item.Caption := '設定為工作日(&N)';
  item.OnClick := ToNormalDayPopupMenuClicked;
  FGridPopupMenu.Items.Add(Item);

  item := TMenuItem.Create(Self);
  item.Caption := '設定為普通周末(&W)';
  item.OnClick := ToNormalWeekEndPopupMenuClicked;
  FGridPopupMenu.Items.Add(Item);

  item := TMenuItem.Create(Self);
  item.Caption := '顯示農歷日期(&C)';
  item.OnClick := DisplayCDPopupMenuClicked;
  FGridPopupMenu.Items.Add(Item);

end;

procedure TMonthPanel.ToHolidayPopupMenuClicked(Sender: TObject);
begin
  SelectedRangeToSign(dsHoliday);
end;

procedure TMonthPanel.ToNormalDayPopupMenuClicked(Sender: TObject);
begin
  SelectedRangeToSign(dsNormal);

end;

procedure TMonthPanel.SetOnCaptionDBClick(const Value: TNotifyEvent);
begin
  FMonthCaptionPanel.OnDblClick := Value;
end;

function TMonthPanel.GetCaptionPopUpMenu: TPopupMenu;
begin
  Result := FMonthCaptionPanel.PopupMenu;
end;

procedure TMonthPanel.SetCaptionPopUpMenu(const Value: TPopupMenu);
begin
  FMonthCaptionPanel.PopupMenu := Value;
end;

function TMonthPanel.GetCaptionMouseMove: TMouseMoveEvent;
begin
  Result := FMonthCaptionPanel.OnMouseMove;
end;

procedure TMonthPanel.SetCaptionMouseMove(const Value: TMouseMoveEvent);
begin
  FMonthCaptionPanel.OnMouseMove := Value;
end;

function TMonthPanel.GetOnCaptionDBClick: TNotifyEvent;
begin
  Result := FMonthCaptionPanel.OnDblClick;
end;

function TMonthPanel.GetOnCaptionMouseDown: TMouseEvent;
begin
  Result := FMonthCaptionPanel.OnMouseDown;
end;

function TMonthPanel.GetOnCaptionMouseUp: TMouseEvent;
begin
  Result := FMonthCaptionPanel.OnMouseUp;
end;

procedure TMonthPanel.SetOnCaptionMouseDown(const Value: TMouseEvent);
begin
  FMonthCaptionPanel.OnMouseDown := Value;
end;

procedure TMonthPanel.SetOnCaptionMouseUp(const Value: TMouseEvent);
begin
  FMonthCaptionPanel.OnMouseUp := Value;
end;

procedure TMonthPanel.OnNexClick(Sender: TObject);
begin
  if MonthOf(FMonthPanelDate) = 12 then
  begin
    MonthPanelDate := EncodeDate(Yearof(FMonthPanelDate),1,1);
  end else
  begin
    MonthPanelDate := EncodeDate(Yearof(FMonthPanelDate),MonthOf(FMonthPanelDate)+1,1);
  end;
end;

procedure TMonthPanel.OnPriClick(Sender: TObject);
begin
  if MonthOf(FMonthPanelDate) = 1 then
  begin
    MonthPanelDate := EncodeDate(Yearof(FMonthPanelDate)-1,12,1);
  end else
  begin
    MonthPanelDate := EncodeDate(Yearof(FMonthPanelDate),MonthOf(FMonthPanelDate)-1,1);
  end;
end;

procedure TMonthPanel.DisplayCDPopupMenuClicked(Sender: TObject);
begin
  DispalyChineseDay := not FDispalyChineseDay;
  (Sender as TMenuItem).Checked := DispalyChineseDay;
end;

function TMonthPanel.RefreshMonthGrid:Integer;
var
  laDay:TDate;
  lDayOfTheWeek:Integer;
  lWeekOfMonth:Integer;
  i:Integer;
  lChineseDate:TChineseDate;
begin
  laDay := FMonthPanelDate;
  lWeekOfMonth := 1;
  for i := 0 to FDaysInMonth-1 do
  begin
    FMonthGrid.Cells[DayOfTheWeek(laDay)-1,lWeekOfMonth] :=
      IntToStr(i+1);

    if FDispalyChineseDay then lChineseDate:=ChineseDate(laDay);

    lDayOfTheWeek := DayOfTheWeek(laDay);

    if FChineseNewYear = laDay then
    begin
        FMonthGrid.Cells[lDayOfTheWeek-1,lWeekOfMonth] :=
         FMonthGrid.Cells[lDayOfTheWeek-1,lWeekOfMonth] +
         '[春節]';

    end else
    begin
      if FDayInfors[i+1]<>'' then
        FMonthGrid.Cells[lDayOfTheWeek-1,lWeekOfMonth] :=
         FMonthGrid.Cells[lDayOfTheWeek-1,lWeekOfMonth] +
         CALENDARSPLITE+FDayInfors[i+1]
      else if FDispalyChineseDay then
      begin
        if lChineseDate.day=1 then
          FMonthGrid.Cells[lDayOfTheWeek-1,lWeekOfMonth] :=
           FMonthGrid.Cells[lDayOfTheWeek-1,lWeekOfMonth] + CALENDARSPLITE+
           CHINESEMONTHNAME[lChineseDate.month-1]
        else
          FMonthGrid.Cells[lDayOfTheWeek-1,lWeekOfMonth] :=
           FMonthGrid.Cells[lDayOfTheWeek-1,lWeekOfMonth] + CALENDARSPLITE+
           CHINESEDAYNAME[lChineseDate.day-1];
      end;
    end;

    FCellDays[lDayOfTheWeek-1,lWeekOfMonth] := laDay;
    FDayCells[i+1].X := lDayOfTheWeek-1;
    FDayCells[i+1].Y := lWeekOfMonth;

    laDay := laDay + 1;
    if (DayOfTheWeek(laDay) = 1) and
      (MonthOf(laDay)=MonthOf(FMonthPanelDate)) then lWeekOfMonth := lWeekOfMonth + 1;
  end;
  Result := lWeekOfMonth;
end;

procedure TMonthPanel.SetDispalyChineseDay(const Value: Boolean);
begin
  if FDispalyChineseDay <> Value then
  begin
    FDispalyChineseDay := Value;
    RefreshMonthGrid;
  end;
end;

function TMonthPanel.CellDay(ACellCoord: TGridCoord): TDate;
begin
  Result := 0;
  if (ACellCoord.X in [0..6]) and (ACellCoord.Y in [1..6]) then
  begin
    Result := FCellDays[ACellCoord.X,ACellCoord.Y];
  end;
end;

function TMonthPanel.DayCell(DayIndex: Integer): TGridCoord;
var
  ErrorPoint:TGridCoord;
begin
  ErrorPoint.X := 0;
  ErrorPoint.Y := 0;
  Result := ErrorPoint;
  if DayIndex in [1..31] then
  begin
    Result := FDayCells[DayIndex];
  end;

end;

function TMonthPanel.DayInfors(DayIndex: Integer): string;
begin
  Result := '';
  if DayIndex in [1..31] then
  begin
    Result := FDayInfors[DayIndex];
  end;

end;

function TMonthPanel.DaySigns(DayIndex: Integer): TDaySign;
begin
  Result := dsNormal;
  if DayIndex in [1..31] then
  begin
    Result := FDaySigns[DayIndex];
  end;
end;

procedure TMonthPanel.ToNormalWeekEndPopupMenuClicked(Sender: TObject);
begin
  SelectedRangeToSign(dsWeekend);
end;

procedure TMonthPanel.SelectedRangeToSign(ToSign: TDaySign);
var
  i,j:Integer;
  lSelection:TGridRect;
begin
  lSelection := FMonthGrid.Selection;
  if ToSign=dsWeekend then
  begin
    if 5 in [lSelection.Left..lSelection.Right] then
      lSelection.Left := 5
    else if lSelection.Right<5 then exit;
  end;

  with FMonthGrid do
  begin
    for i := lSelection.Left to lSelection.Right do
    begin
      for j := lSelection.Top to lSelection.Bottom do
      begin
        if FCellDays[i,j]<>0 then
        begin
          if ToSign=dsWeekend then
          begin
            if DayOfTheWeek(FCellDays[i,j]) in [6..7] then
              FDaySigns[DayOf(FCellDays[i,j])] := ToSign;
          end else
            FDaySigns[DayOf(FCellDays[i,j])] := ToSign;
        end;
      end;
    end;
  end;


  if Assigned(FOnDaysSignChanged) then
  begin
    FOnDaysSignChanged(Self,lSelection,ToSign);
  end;
  FMonthGrid.Invalidate;
end;

procedure TMonthPanel.SetCalendarLunarFont(const Value: TFont);
begin
  FLunarCalendarFont.Assign(Value);
  FMonthGrid.Invalidate;
end;

procedure TMonthPanel.SetGregorianCalendarFont(const Value: TFont);
begin
  FGregorianCalendarFont.Assign(Value);
  FMonthGrid.Invalidate;
end;

procedure TMonthPanel.SetMonthChangeButton(const Value: Boolean);
begin
  FShowMonthChangeButton := Value;
  FPriMonth.Visible := Value;
  FNexMonth.Visible := Value;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产女人水真多18毛片18精品视频| 一二三四社区欧美黄| 欧美激情综合五月色丁香 | 日本一区二区三区四区在线视频| 一区二区三区在线不卡| 韩国v欧美v日本v亚洲v| 欧美日韩久久久久久| 国产精品传媒入口麻豆| 精品一区二区在线播放| 欧美高清dvd| 亚洲视频一区在线| 国产在线精品一区二区不卡了 | 成人黄色大片在线观看| 日韩精品一区二区在线| 天堂资源在线中文精品| 99riav一区二区三区| 久久网站最新地址| 激情亚洲综合在线| 91.com视频| 日本女优在线视频一区二区| 欧美私人免费视频| 亚洲午夜在线视频| 欧美在线一区二区| 一区二区三区四区精品在线视频| 91丨国产丨九色丨pron| 中文字幕精品三区| 99综合电影在线视频| 国产精品高潮呻吟| 91免费在线看| 亚洲色图视频网| 色婷婷综合五月| 亚洲欧洲中文日韩久久av乱码| 成人av在线播放网址| 国产精品看片你懂得| 成人爽a毛片一区二区免费| 国产欧美日韩精品一区| 成人aa视频在线观看| 中文字幕一区在线观看视频| 色综合色狠狠天天综合色| 亚洲欧美偷拍另类a∨色屁股| 91免费看片在线观看| 亚洲一区二区三区在线看| 精品视频1区2区3区| 亚洲www啪成人一区二区麻豆| 777午夜精品视频在线播放| 日本亚洲电影天堂| 久久久国际精品| 成人av网站在线观看| 亚洲最大色网站| 日韩欧美亚洲国产精品字幕久久久| 美女一区二区在线观看| 欧美极品aⅴ影院| 色美美综合视频| 日本不卡视频一二三区| 久久久99久久| 91麻豆福利精品推荐| 亚洲成人免费看| 精品sm在线观看| 99久久免费视频.com| 亚洲成人久久影院| 久久久久久久av麻豆果冻| 成人av集中营| 日韩av网站在线观看| 国产日韩欧美a| 欧美综合色免费| 欧美日韩亚洲综合在线 | 国产美女一区二区三区| 国产精品国产三级国产| 欧美日本不卡视频| 国产麻豆9l精品三级站| 亚洲国产一二三| 国产欧美日韩精品在线| 制服视频三区第一页精品| 懂色av一区二区三区免费看| 亚洲综合偷拍欧美一区色| 久久久久99精品国产片| 欧美亚洲国产怡红院影院| 国产麻豆成人传媒免费观看| 首页国产欧美日韩丝袜| 中文字幕一区二区三| 日韩三级免费观看| 欧美制服丝袜第一页| 大胆亚洲人体视频| 美日韩一区二区| 五月天视频一区| 亚洲美女在线国产| 久久久精品综合| 日韩免费高清av| 欧美性色aⅴ视频一区日韩精品| 国产高清在线精品| 卡一卡二国产精品| 日韩电影网1区2区| 亚洲一区影音先锋| 亚洲精品久久久蜜桃| 国产精品久久久久四虎| 日韩精品中文字幕一区| 欧美老人xxxx18| 欧美精品一二三| 欧美调教femdomvk| 一本大道av伊人久久综合| 国产91精品免费| 国产乱码精品一区二区三区av | 午夜精品久久久久久久久| 亚洲美女免费视频| 国产精品盗摄一区二区三区| 国产亚洲福利社区一区| 久久综合久久综合久久综合| 日韩一级黄色片| 7777精品伊人久久久大香线蕉的 | 久久精品综合网| 久久精品亚洲乱码伦伦中文| 精品国产99国产精品| 91精品国产高清一区二区三区 | 国产精品久久久久久久浪潮网站| 精品粉嫩超白一线天av| 精品国产一区二区三区不卡| 日韩手机在线导航| 亚洲国产综合色| 午夜久久久久久久久| 亚洲成在线观看| 五月婷婷久久综合| 视频一区视频二区中文字幕| 日韩成人精品视频| 免费日本视频一区| 裸体一区二区三区| 激情综合网天天干| 国产一区二区三区免费| 国产成人午夜精品影院观看视频| 国产91丝袜在线观看| www.亚洲精品| 欧亚洲嫩模精品一区三区| 欧美日韩一级黄| 精品久久人人做人人爽| 欧美国产日产图区| 亚洲精品国久久99热| 偷拍一区二区三区四区| 激情综合五月天| 99久久综合国产精品| 欧美体内she精视频| 日韩美女天天操| 18成人在线观看| 无码av免费一区二区三区试看| 久久国产精品无码网站| 成人福利在线看| 欧美日韩国产综合视频在线观看| 日韩精品一区在线| 亚洲日本一区二区| 免费观看一级特黄欧美大片| 成人免费毛片app| 欧美性高清videossexo| 精品国产一区a| 亚洲综合一区在线| 国产一区二区精品久久99| 色综合久久66| 精品少妇一区二区三区日产乱码| 国产农村妇女毛片精品久久麻豆 | 色综合久久中文综合久久97| 在线成人小视频| 欧美极品另类videosde| 日韩精品高清不卡| 91蜜桃视频在线| 久久亚洲欧美国产精品乐播| 亚洲愉拍自拍另类高清精品| 久久aⅴ国产欧美74aaa| 色94色欧美sute亚洲线路二| 久久精品亚洲一区二区三区浴池| 亚洲国产欧美日韩另类综合 | 国产精品久久久久久久久免费桃花| 亚洲一区二区免费视频| 高清不卡在线观看av| 69成人精品免费视频| 亚洲色图在线看| 国产成人8x视频一区二区| 91麻豆精品国产91久久久久久 | 91丨九色丨尤物| 国产无人区一区二区三区| 天堂av在线一区| 91官网在线观看| 亚洲日本va午夜在线影院| 国产中文字幕精品| 欧美一区二区精品在线| 午夜精品福利一区二区三区av | 欧美va亚洲va| 午夜日韩在线电影| 色拍拍在线精品视频8848| 国产精品欧美一区二区三区| 捆绑变态av一区二区三区| 欧美精品18+| 亚洲成人自拍网| 亚洲人成网站色在线观看| 国产乱对白刺激视频不卡| 精品日韩一区二区三区免费视频| 日韩国产高清在线| 91麻豆精品国产91久久久更新时间| 一区二区激情视频| 欧美亚洲综合另类| 亚洲国产一区二区三区| 欧美性大战久久| 亚洲自拍另类综合| 欧美久久一区二区|