CalendarPane
学习CalendarPanel控件的常用事件。
DayClick(...) //点击日期块空白部分触发
EventClick(...) //点击日期块上事件触发
RangeSelect(...) //选择多个日期触发
procedure TMainForm.UniCalendarPanel1DayClick(Sender: TUniCalendarPanel;
ADate: TDateTime; Allday: Boolean);
begin
EventEditForm.Calenedar:=UniCalendarPanel1;
EventEditForm.ClearEvent;
EventEditForm.SetDate(ADate, ADate);
EventEditForm.ShowModal;
end; procedure TMainForm.UniCalendarPanel1EventClick(Sender: TUniCalendarPanel;
AEventId: Integer; AEvent: TUniCalendarEvent);
begin
EventEditForm.Calenedar:=UniCalendarPanel1;
EventEditForm.SetEvent(AEvent);
EventEditForm.ShowModal;
end; procedure TMainForm.UniCalendarPanel1RangeSelect(Sender: TUniCalendarPanel;
AStarDate, AEndDate: TDateTime);
begin
EventEditForm.Calenedar:=UniCalendarPanel1;
EventEditForm.ClearEvent;
EventEditForm.SetDate(AStarDate, AEndDate);
EventEditForm.ShowModal;
end;
procedure TMainForm.UniFormCreate(Sender: TObject);
var
E : TUniCalendarEvent;
begin
UniCalendar1.Date:=Date;
UniCalendarPanel1.StartDate:=Date; E:=UniCalendarPanel1.Events.Add; //添加日程
E.CalendarId:=; //日程id
E.Title:='Meeting'; //日程标题
E.StartDate:=Date; //开始时间
E.EndDate:=Date+0.1; //结束时间 E:=UniCalendarPanel1.Events.Add;
E.CalendarId:=;
E.Title:='Meeting-2';
E.StartDate:=Date+;
E.EndDate:=Date+1.1;
E.IsAllDay:=True; E:=UniCalendarPanel1.Events.Add;
E.CalendarId:=;
E.Title:='Meeting-3';
E.StartDate:=Date+1.1;
E.EndDate:=Date+1.2; E:=UniCalendarPanel1.Events.Add;
E.CalendarId:=;
E.Title:='Meeting-4';
E.StartDate:=Date+2.1;
E.EndDate:=Date+2.2;
E.Reminder:='In 15 Minutes';
end;
在项目上用到了日历控件,主要用来显示签到签退记录。
...
with UniMainModule.qryDetail do
begin
First;
while not eof do
begin
...
if FieldByName('缺勤数').AsInteger = then
begin
E := UniCalendarPanel1.Events.Add;
E.Title := '出勤';
E.StartDate := nStart;
E.EndDate := nStart;
E.IsAllDay:=True;
end;
Inc(nid);
next;
end;
First;
end;