2010-09-21 255 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