2010-09-21 131 views

回答

0

这是一个快速破解,它可以帮助你实现这个功能。但是,您应该自己处理复选框。

procedure TForm1.cxDateEdit1PropertiesPopup(Sender: TObject); 
var 
    AEdit: TcxDateEdit; 
    ACalendar: TcxPopupCalendar; 
    ACheckBox: TcxCheckBox; 
begin 
    AEdit := TcxDateEdit(Sender); 
    if AEdit.Tag <> 1 then 
    begin 
    AEdit.Tag := 1; 
    ACalendar := TcxPopupCalendar(AEdit.Properties.PopupControl); 
    ACheckBox := TcxCheckBox.Create(Self); 
    ACheckBox.Parent := ACalendar.Parent; 
    ACheckBox.Align := alBottom; 
    ACheckBox.Transparent := True; 
    ACalendar.Parent.Height := ACalendar.Parent.Height + ACheckBox.Height; 
    end; 
end; 
+0

这是完美的,正是我所期待的!谢谢 – PDM 2010-09-22 11:30:38

2

我不确定我是否理解您希望实现的目标。无论如何,这是不可能的,如果没有创建一个支持这种外观的自定义cxEditor &的感觉和所需的功能。

+0

嗨,我想要实现这个目的只具有其中的一列使用日期选择器cxGrid(DateEdit:我已经这样做了独立的编辑器,但是,同样的方法将与内置的编辑器工作)。我希望通常的日历下拉显示,但底部有一个嵌入的复选框。 – PDM 2010-09-22 08:40:36

+0

这是一个快速入门,它应该可以帮助你: procedure TForm1.cxDateEdit1PropertiesPopup(Sender:TObject); var AEdit:TcxDateEdit; ACalendar:TcxPopupCalendar; ACheckBox:TcxCheckBox; begin AEdit:= TcxDateEdit(Sender); 如果AEdit.Tag <> 1,则 开始 AEdit.Tag:= 1; ACalendar:= TcxPopupCalendar(AEdit.Properties.PopupControl); ACheckBox:= TcxCheckBox.Create(Self); ACheckBox.Parent:= ACalendar.Parent; ACheckBox.Align:= alBottom; ACheckBox.Transparent:= True; 012alea.parent.Height = ACalendar.Parent.Height + ACheckBox.Height; ACalendar.Parent.Height:= ACalendar.Parent.Height + ACheckBox.Height; 结束; 结束; – 2010-09-22 09:23:53