Библиотека Developer Express Editors поставляется с флажком, учитывающим данные, если вы не хотите писать свой собственный составной компонент, используйте тот же код, просто измените класс, используемый для создания флажка, и добавьте код, чтобы связать его с поле, используя ваши собственные правила, например:
procedure TForm1.cxDateEdit1PropertiesPopup(Sender: TObject);
var
//I changed the class of the DateEdit also, if you connect to your datasource by
//other means, update the code accordingly
AEdit: TcxDBDateEdit;
ACalendar: TcxPopupCalendar;
ACheckBox: TcxDBCheckBox;
AField: TField;
begin
AEdit := Sender as TcxDBDateEdit; //just to be on the safe side
if AEdit.Tag <> 1 then
begin
AEdit.Tag := 1;
ACalendar := TcxPopupCalendar(AEdit.Properties.PopupControl);
ACheckBox := TcxDBCheckBox.Create(Self);
ACheckBox.Parent := ACalendar.Parent;
ACheckBox.Align := alBottom;
ACheckBox.Transparent := True;
if Assigned(AEdit.DataBinding.Field) then
AField := AEdit.DataBinding.DataSource.DataSet.FindField(AEdit.DataBinding.Field.Name + 'SELECTED')
else
AField := nil;
if Assigned(AField) then
begin
ACheckBox.DataBinding.DataSource := AEdit.DataBinding.DataSource;
ACheckBox.DataBinding.Field := AField;
end;
ACalendar.Parent.Height := ACalendar.Parent.Height + ACheckBox.Height;
end;
end;