使用 IntraWeb (22) - 基本控件之 TIWCalendar
TIWCalendar: 日历控件, 继承于 TIWCustomGrid, 所以它和 TIWGrid 共同属性特多.
它的 Cell 是 TIWCalendarCell 对象, 直接从 TIWGridCell 继承.
TIWCalendar 所在单元及继承链:
IWCompCalendar.TIWCalendar
主要成员:
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
改控件拖到窗体上就能用, 如果要写一行代码的话应该是: IWCalendar1.StartDate := Date;
下面是个比较全面的测试:
var
gInfoList: TStrings; //用于记录自定义的备忘信息
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
gInfoList := TStringList.Create; //如果是长期保存, 它应该是从服务器上读取某个文件
IWCalendar1.Caption := ''; //标题无用
IWCalendar1.CaptionPrevious := '>';
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;
效果图:

使用 IntraWeb (22) - 基本控件之 TIWCalendar的更多相关文章
- 使用 IntraWeb (24) - 基本控件之 TIWFileUploader、TIWFile
TIWFileUploader 是基于 Ajax 的上传控件, 最初是 Andrew Valums 开发, 从 IntraWeb XIV 纳入并替换 TIWFile. 虽然从组件面板上还能看到 TIW ...
- 使用 IntraWeb (29) - 基本控件之 TIWAutherList、TIWAutherINI、TIWAutherEvent
TIWAutherList //通过一组户名与密码验证登陆 TIWAutherINI //通过记录户名与密码信息的 #Auth.ini 文件验证登陆 TIWAutherEvent //通过其 OnCh ...
- 使用 IntraWeb (28) - 基本控件之 TIWTemplateProcessorHTML、TIWLayoutMgrHTML、TIWLayoutMgrForm
TIWTemplateProcessorHTML //使用外部的 html 文件做模板 TIWLayoutMgrHTML //直接输入 Html 文本做模板 TIWLayoutMgrForm //这应 ...
- 使用 IntraWeb (26) - 基本控件之 TIWMenu
TIWMenu 的任务是让原来的 TMainMenu 呈现在网页上, 通过其 AttachedMenu 属性关联一个 TMainMenu 是必需的. TIWMenu 所在单元及继承链: IWCompM ...
- 使用 IntraWeb (25) - 基本控件之 TIWRegion
这应该是 IW 中最重要的容器了, 和它同父的还有 TIWTabControl TIWRegion 所在单元及继承链: IWRegion.TIWRegion 主要成员: property Align: ...
- 使用 IntraWeb (23) - 基本控件之 TIWTimer、TIWProgressBar、TIWProgressIndicator、TIWTimeEdit
TIWTimer //和 TTimer 没多大区别, 它的默认事件现在是异步的(OnAsyncTimer), 在网络上使用 OnTimer 肯定是非常糟糕的 TIWProgressBar //进度条 ...
- 使用 IntraWeb (20) - 基本控件之 TIWGrid
TIWGrid 最终通过 Html Table 呈现; 其每个 Cell 都是一个 TIWGridCell 对象, Cell 对象的 Control 属性非常好, 可以非常方便地嵌入其他控件. TIW ...
- 使用 IntraWeb (19) - 基本控件之 TIWTreeView
这是个饱受非议的控件; 我通过尝试, 理解了非议, 也能理解作者. 总之向作者的思路靠拢吧, 还是不错的. TIWTreeView 所在单元及继承链: IWCompTreeview.TIWTreeVi ...
- 使用 IntraWeb (16) - 基本控件之 TIWList、TIWListbox、TIWComboBox、TIWOrderedListbox
TIWList //列表; 它对应 Html 中的 OL.LI(某些选项下会用表格模拟); TIWListbox 和 TIWComboBox 则对应 Html 在的 Option TIWListbox ...
随机推荐
- argunlar 1.0.0 【hello,world】
<!DOCTYPE html><html lang="en" ng-app><head> <meta charset="U ...
- Docker学习笔记三 Dockerfile 指令 定制镜像
本文地址:https://www.cnblogs.com/veinyin/p/10412079.html 镜像是分层存储的,每一层都是独立存在的,修改当前层并不会修改其依赖的上一层,删除某一层也只是 ...
- OC中实现锁
熟悉多线程开发的同学对锁肯定不陌生,但是OC中如何实现锁呢?给大家科普一下. 首先构建一个测试用的类,假想它是我们的一个共享资源,method1与method2是互斥的,代码如下: @implemen ...
- expect 交互
expect expect 是一种自动交互语言,能实现在shell脚本中为scp和ssh等自动输入密码自动登录. exp_continue # 多个spawn命令时并行 interact # 执行完成 ...
- (F. MST Unification)最小生成树
题目链接:http://codeforces.com/contest/1108/problem/F 题目大意:给你n个点和m条边,然后让你进行一些操作使得这个图的最小生成树唯一,每次的操作是给某一条边 ...
- Android的layout_weight和weightSum
先看一下weightSum属性的功能描述:定义weight总和的最大值.如果未指定该值,以所有子视图的layout_weight属性的累加值作为总和的最大值.把weightSum的定义搁在这里,先去看 ...
- mybatis开发dao的方法——(三)
------------------------1. SqlSession使用范围------------------- 1.1 SqlSessionFactoryBuilder 通过S ...
- 关于NotificationListenerService监听时有失败的处理
关于NotificationListenerService监听时有失败的处理 问题由来 去年进入一家专业做智能穿戴设备的公司,在项目中需要监听系统通知栏变化(主要是IM类app的信息获取到后推送到用户 ...
- (五)消费Dubbo服务
前面我们搞了发布Dubbo服务,发布的服务就是用来消费的,所以我们这里来调用服务,消费下: 创建maven项目 dubbo-demo-consumer pom.xml配置下: <dependen ...
- Android仿苹果版QQ下拉刷新实现(二) ——贝塞尔曲线开发"鼻涕"下拉粘连效果
前言 接着上一期Android仿苹果版QQ下拉刷新实现(一) ——打造简单平滑的通用下拉刷新控件 的博客开始,同样,在开始前我们先来看一下目标效果: 下面上一下本章需要实现的效果图: 大家看到这个效果 ...