You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi中如何修改TMS TPlannerMonthView的Item颜色?

TMS PlannerMonthView组件Item Color自定义修改方案

TMS PlannerMonthView的全局配色配置仅作用于组件背景、时间网格等公共UI元素,规划项(Item)颜色默认绑定每个TPlannerItem实例的独立属性,不会随全局配置变更,可通过以下方式修改为自定义灰色或其他颜色:

  • 方案1:深色模式切换时批量修改所有已有Item颜色
    适配需要全局统一切换配色的场景,在深色模式触发逻辑中加入以下代码:

    var
      i: Integer;
    begin
      // 先关闭默认颜色强制覆盖开关
      PlannerMonthView1.UseDefaultItemColors := False;
      for i := 0 to PlannerMonthView1.Items.Count - 1 do
      begin
        // 自定义深灰色,可按需调整RGB值
        PlannerMonthView1.Items[i].Color := $003A3A3A;
        // 同步修改文字颜色适配深色背景
        PlannerMonthView1.Items[i].Font.Color := clWhite;
      end;
      // 强制刷新组件使配置生效
      PlannerMonthView1.Invalidate;
    end;
    
  • 方案2:动态新增Item时直接指定颜色
    新增规划项时就赋值颜色,避免后续重复遍历修改:

    var
      NewItem: TPlannerItem;
    begin
      NewItem := PlannerMonthView1.Items.Add;
      NewItem.Text := '示例待办';
      NewItem.StartTime := Now;
      NewItem.EndTime := IncHour(Now, 1);
      NewItem.Color := $003A3A3A;
      NewItem.Font.Color := clWhite;
    end;
    
  • 方案3:数据源绑定模式下统一配置
    如果通过DataSource绑定数据集自动生成Item,在组件的OnItemInsert事件中统一设置颜色即可:

    procedure TForm1.PlannerMonthView1ItemInsert(Sender: TObject; AItem: TPlannerItem);
    begin
      AItem.Color := $003A3A3A;
      AItem.Font.Color := clWhite;
    end;
    

注意:修改前必须将组件的UseDefaultItemColors属性设为False,否则系统会强制使用默认配色覆盖自定义设置。

内容的提问来源于stack exchange,提问作者Daniel1999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 18:48:02