使用 IntraWeb (22) - 基本控件之 TIWCalendar

TIWCalendar: 日历控件, 继承于 TIWCustomGrid, 所以它和 TIWGrid 共同属性特多.

它的 Cell 是 TIWCalendarCell 对象, 直接从 TIWGridCell 继承.



TIWCalendar 所在单元及继承链:
IWCompCalendar.TIWCalendar < TIWCustomGrid < TIWCustomControl < TIWBaseHTMLControl < TIWBaseControl < TIWVCLBaseControl < TControl < TComponent < TPersistent < TObject

主要成员:




 
property Cell[const ARow: Integer, const AColumn: Integer]: TIWCalendarCell // property CurrentDayImage: TIWFileReference    //显示在当前日期的图片 property CaptionToday: string                //当前日期的附加标题 property PreviousMonthImage: TIWFileReference //"后退"图片 property NextMonthImage: TIWFileReference    //"前进"图片 property CaptionPrevious: string          //"后退"标题 property CaptionNext: string              //"前进"标题 property CalendarHeaderColor: TIWColor    //标题背景色 property CalendarColor: TIWColor          //背景色 property AlternateCalendarColor: TIWColor //用于交替的背景色 property CheckerBoard: Boolean            //是否使用交替背景 property CalendarHeaderFont: TIWFont  //标题字体 property CalendarFont: TIWFont        //字体 property StartDate: TDateTime        //默认当前日期 property SelectedDate: TDateTime      //就是刚刚点过的日期 property DisplayYear: Boolean        //是否显示"年" property LocaleID: Integer                //本地语言 ID property CellRenderOptions: TIWCellRenderOptions // property BorderColors: TIWGridBorderColors // property BGColor: TIWColor                // property BorderSize: Integer              // property BorderStyle: TIWGridBorderStyle  // property Caption: TCaption    // property CellPadding: Integer  //           property CellSpacing: Integer  // property Font: TIWFont        // property Lines: TIWGridLines  // property Summary: string      // property UseFrame: Boolean    // property UseSize: Boolean      // property HiddenColumns: TStringList // property OnDateChange: TIWCalendarDateChange    // property OnGetDateInformation: TIWCalendarGetDateInformation  // property OnGetDayNames: TIWCalendarGetDayNames  // property OnGetMonthName: TIWCalendarGetMonthName // property OnRenderCell: TIWOnRenderCell          // property OnRender: TNotifyEvent                  // property OnGetCellRenderOptions: TIWGetCellRenderOptionsEvent // procedure SetHeaderCells;                                          // function IsRowVisible(ARow: Integer): Boolean                      // procedure SetColumnVisibility(AColumn: Integer; AVisible: Boolean) // 


TIWCalendarCell:


 



 
{IWCompCalendar.TIWCalendarCell < TIWGridCell < TCollectionItem < TPersistent < TObject} property CellDate: TDateTime          // property DateInformation: TStringList //与日期关联的备注信息 property ImageFile: TIWImageFile      //看来每个 Cell 都可以使用图像; 这应该是为当前日期准备的 {还包括和 TIWGridCell 相同的一些} 


改控件拖到窗体上就能用, 如果要写一行代码的话应该是: IWCalendar1.StartDate := Date;

下面是个比较全面的测试:




 
var   gInfoList: TStrings; //用于记录自定义的备忘信息 procedure TIWForm1.IWAppFormCreate(Sender: TObject); begin   gInfoList := TStringList.Create; //如果是长期保存, 它应该是从服务器上读取某个文件   IWCalendar1.Caption := '';          //标题无用   IWCalendar1.CaptionPrevious := '<<'; //其实给它图像(PreviousMonthImage)更好看   IWCalendar1.CaptionNext := '>>';   IWCalendar1.CalendarHeaderColor := $88aaaa;   IWCalendar1.CalendarColor := $eeffff;   IWCalendar1.AlternateCalendarColor := $ccdddd; //交替颜色   IWCalendar1.CheckerBoard := True;              //确认使用指定的 "交替颜色" 与背景色交替使用   IWCalendar1.CalendarFont.Size := 12;   LinkColor := $0033dd; //Cell 中的文本其实成了链接了, 如果要改变 Cell 中文本的显示, 最好使用 Css   IWCalendar1.CaptionToday := '★'; //突出标示当前日期, 或使用图像(CurrentDayImage)   IWCalendar1.StartDate := Date; //显然使用 Date 比 Now 更合理; 这句还能起到刷新的作用 end; {通过 OnGetDayNames 事件调整周标题显示} procedure TIWForm1.IWCalendar1GetDayNames(var Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday: string); begin   Sunday := '周末'; end; {通过 OnGetMonthName 事件调整月份显示} procedure TIWForm1.IWCalendar1GetMonthName(MonthNumber: Integer; var MonthName: string); begin   MonthName := MonthNumber.ToString + '月'; end; {通过 OnRenderCell 事件调整更多显示细节} procedure TIWForm1.IWCalendar1RenderCell(ACell: TIWGridCell; const ARow, AColumn: Integer); begin   {让当前选定的日期在字号上有所区别}   if TIWCalendarCell(ACell).CellDate = TIWCalendar(ACell.Grid).SelectedDate then     ACell.Font.Size := 14   else     ACell.Font.Size := ACell.Grid.Font.Size;   {ARow = 0 是最上面一行, 也就是带月导航的那行}   if ARow = 0 then ACell.Font.Size := 13;   {Arow = 1 是周标题}   if ARow = 1 then ACell.Height := '20'; //Height 是 字符串在 Html 中不难理解 end; {添加和日期关联的备注信息} procedure TIWForm1.IWButton1AsyncClick(Sender: TObject; EventParams: TStringList); begin   gInfoList.Values[FormatDateTime('ddmmyyyy', IWCalendar1.SelectedDate)] := IWMemo1.Text; end; {选择不同日期时再取回备注信息} procedure TIWForm1.IWCalendar1DateChange(ADate: TDateTime); begin   IWMemo1.Text := gInfoList.Values[FormatDateTime('ddmmyyyy', ADate)]; end; {通过切换月份, 可以看到刚添加的与日期关联的备注信息} procedure TIWForm1.IWCalendar1GetDateInformation(ADate: TDateTime; VInformation: TStrings); begin   VInformation.Text := gInfoList.Values[FormatDateTime('ddmmyyyy', ADate)]; end; procedure TIWForm1.IWAppFormDestroy(Sender: TObject); begin   gInfoList.Free; end; 


效果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值