• Demo学习: CalendarPanel


    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:=1;                 //日程id
      E.Title:='Meeting';              //日程标题
      E.StartDate:=Date;               //开始时间
      E.EndDate:=Date+0.1;             //结束时间
    
      E:=UniCalendarPanel1.Events.Add;
      E.CalendarId:=2;
      E.Title:='Meeting-2';
      E.StartDate:=Date+1;
      E.EndDate:=Date+1.1;
      E.IsAllDay:=True;
    
      E:=UniCalendarPanel1.Events.Add;
      E.CalendarId:=3;
      E.Title:='Meeting-3';
      E.StartDate:=Date+1.1;
      E.EndDate:=Date+1.2;
    
      E:=UniCalendarPanel1.Events.Add;
      E.CalendarId:=1;
      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 = 0 then begin E := UniCalendarPanel1.Events.Add; E.Title := '出勤'; E.StartDate := nStart; E.EndDate := nStart; E.IsAllDay:=True; end; Inc(nid); next; end; First; end;

  • 相关阅读:
    腾讯精选50题算法【二叉搜索树的最近公共祖先】
    潜水一周,我精心整理了两个超级有用的职场生存之道
    全球用尽IPv4的一点思考
    Leetcode算法【114. 二叉树展开为链表】
    【翻译】全新16英寸MacBook Pro评测:开发人员的梦想成真
    Medium高赞系列,如何正确的在Stack Overflow提问
    Typora+PicGo+GitHub实现md自带图床效果
    SpringBoot输出日志到文件
    Mybatis用SQL做自连表查询
    IDEA实用插件推荐及使用方法详解
  • 原文地址:https://www.cnblogs.com/fengxb/p/2845680.html
Copyright © 2020-2023  润新知