|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
DateTimePicker MinDate MaxDate
возникла проблема с периодом в этом элементе. На форме есть комбобокс, через него выбираю дату (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 перезаписать никак? Последний раз редактировалось Регина, 05.05.2011 в 20:13. |
#2
|
|||
|
|||
помогите пожалуйста не могу разобраться!!
|
#3
|
||||
|
||||
Что- то не совсем понятно чего вы вообще добиваетесь. ОГРОМНАЯ база- это сколько? )) И по теме MaxDate И MinDate:
Код:
DateTimePicker1.MaxDate := ваша дата; DateTimePicker1.MinDate := ваша дата; |
#4
|
|||
|
|||
нет в коде же я все разместила mindate и maxdate....он у меня так работает но только для одного месяца...допустим я выбрала в календаре март - больше или меньше марта он не показывает - что и нужно было сделать. вот. но если снова в комбобоксе я выбираю например, май - в календаре тоже открывается май, но при попытке проверить чтобы пользователи не могли через сам календарь выбрать больше или меньше мая, выходит ошибка что, минимальная и максимальная дата уже задана! =( я это то понимаю конечно, но это же ведь можно как-то обойти? чтобы минимальная (макс.) значение было переменным что ли.
|