分不多,兴趣的朋友可以帮忙看看
控件现在有个BUG ,放一个该控件时,没有问题,当在窗体上放多个时,日历的弹出有问题。
提示无效的窗口句柄。procedure TNDatetime.ButtonClick(Sender: TObject);
begin
 // FDCalendar := nil;   
  if FDCalendar = nil then
    begin
      FDCalendar := TMonthCalendar.create(nil);
      FDate := FDCalendar.Date;
      OldWindowProc := FDCalendar.WindowProc;
      FDCalendar.WindowProc := myWndProc;
      FDCalendar.OnClick := CalenderClick;
      FDCalendar.AutoSize := true;
      DCalendarhandle := FDCalendar;
      FCanvas := TControlCanvas.create;
      FCanvas.Control := self.parent;
      FCanvas.Pen.Width := FFrameWidth;
      FCanvas.Brush.Style := bsClear;
      SetNCalColors(FNCalColors); //设置颜色
    end;  if not FDCalendar.Showing then
    begin
      FNParent := GetNParent; //得到窗体的名称
      FDCalendar.parent := FNParent;
      GetLeftandTop;
      FDCalendar.Show;
      invalidate;
    end else
    begin
      FDCalendar.hide;
    end;
end;