возникла проблема с периодом в этом элементе. На форме есть комбобокс, через него выбираю дату (1 января допустим) на его событии closeup прописала чтобы при выборе в 1ой и 2ой датапиккеры (выводились 1 января и 2 января). Это все работает. У меня база данных огромная, и когда в датапиккере перехожу между таблицами идет большая закачка данных. Из-за этого упростила комбобоксом. Суть в том, чтобы при выборе месяца - январь, пользователи через сами датапиккеры не могли выбрать другой месяц. извините кода с собой нет, напишу на память:
Код:
procedure cb_periodChange();
var dtd:string;
y,m,d:word;
i:integer;
begin
dtd:=copy(cb_period.Text,1,2)+'.'+TRIM(cb_year.Text);
DecodeDate(db_end.Date,y,m,d);
if StrToDate(AnsiRightStr('0'+IntToStr(d),2)+'.'+dtd)>Date then
begin
showmessage('Неправильно выбран период!');
cb_period.SelectAll;
db_begin.Date:=StrToDate(AnsiRightStr('0'+IntToStr(d-1),2)+'.'+dtd);
db_end.Date:=StrToDate(AnsiRighrStr('0'+IntToStr(d),2)+'.'+dtd);
dbgrideh1.DataSource.DataSet.Close;
exit;
end else
begin
i:=DaysInMonth(StrToDate('01.'+dtd));
db_begin.MaxDate:=StrToDate(AnsiRightStr('0'+IntTostr(i),2)+'.'+dtd);
db_begin.MinDate:=StrToDate('01.'+dtd);
db_end.MaxDate:=StrToDate(AnsiRightStr('0'+IntTostr(i),2)+'.'+dtd);
db_end.MinDate:=StrToDate('01.'+dtd);
tlb_updateClick(self);
end;
end;
последние с датами точно не помню там переменные, и ошибка даже не в этом.
Допустим запустила , выбрала январь - комбобокс захлопнулся - дбгрид заполнился данными и в датапиккерах можно просматривать - только январь. Это Правильно. Но если в комбоксе я выберу февраль, выходит ошибка что типа уже есть максимальная дата 30 января. Это я понимаю, но неужели в коде MaxDate И MinDate перезаписать никак?