![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TDateTimePicker
iviom © (2007-04-13 15:27:00)Здравствуйте.
Подскажите, пожалуйста, по поводу котнрола TDateTimePicker. Вывести в него дату получилось, при это я установила свйоства:
Format:= 'dd.MM.yyyy HH.mm.ss';
Kind:= dtkTime;
Как не выводить туда дату? Чтобы в поле ничего не было?
Я использую грид, в котором или есть дата или нет (то есть NULL). И по нажатию(выделению строки) хочу выводить значение даты в данный контрол.
dmdel (2007-04-19 09:23:00) [1]Лично я пользуюсь в этих случаях компонентом DateEdit. Это Rx-lib. Если надо, могу прислать.
_Аноним (2007-04-18 22:24:00) [2]
> Как бы сделать так, чтобы пользоватлеь мог менять и время
> и дату?
Два DateTimePicker'а рядом
iviom (2007-04-18 17:07:00) [3]Спасибо, болшое, за ответы. Решила все-таки с чекбоксами пока попробывать.
Только вот такая странность появилась.
DateTimePicker позволяет одновременно изменить только либо дату либо время. Это зависит от свойства DateTimePicker.Kind. Если там стоит свойство dtkDate - то контрол позволяет пользователю менять дату, а если dtkTime - то время. Как бы сделать так, чтобы пользоватлеь мог менять и время и дату?
_Аноним (2007-04-14 11:44:00) [4]Тут вопрос в том, данные доступны только для чтения, или же и для модификации (в том числе для уствновки NULL)
если первое - то выводить в эдит
если второе - то пикер с чекбокасами, имхо
{RASkov} (2007-04-14 11:28:00) [5]> А если дата была введена, а теперь надо ее сделать Null?
Как вариант - можно обработать нажатие клавишь Del+Ctrl... например.
> Ну и вместо FModified, возможно, лучше использовать Tag,
> особенно если таких DateTimePicker'ов будет несколько.
Эт точно.
Virgo_Style (2007-04-14 11:08:00) [6]{RASkov} (13.04.07 23:54) [8]
А если дата была введена, а теперь надо ее сделать Null?
Ну и вместо FModified, возможно, лучше использовать Tag, особенно если таких DateTimePicker'ов будет несколько.
{RASkov} (2007-04-13 23:54:00) [7]Ну может быть вот эту версию раскрутить. Без чекбокса(он всамом деле сбивает столку):
var
FModified: Boolean;
procedure TForm1.<Где-то там на OnDataChange или еще куда>;
begin
если дата=есть тогда DateTimePicker1.Format:='dd.MM.yyyy HH.mm.ss'
иначе DateTimePicker1.Format:=' ';
end;
procedure TForm1.DateTimePicker1Enter(Sender: TObject);
begin
DateTimePicker1.Format:='dd.MM.yyyy HH.mm.ss';
FModified:=False;
end;
procedure TForm1.DateTimePicker1Exit(Sender: TObject);
begin
if not FModified then DateTimePicker1.Format:=' ';
end;
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
FModified:=True;
end;
Virgo_Style (2007-04-13 19:51:00) [8]Лично мне вариант через CheckBox понравился:
ShowCheckBox =true;
procedure TForm1.DateTimePicker1Click(Sender: TObject);
begin
with (Sender as TDateTimePicker) do
if Checked then Format:='' else Format:=' ';
end;
procedure TForm1.DateTimePicker1CloseUp(Sender: TObject);
begin
DateTimePicker1Click(Sender);
end;
Иначе, imho, только несколькими контролами.
Virgo_Style (2007-04-13 19:43:00) [9]iviom (13.04.07 17:07) [5]
А если делать так, то потом никак нельзя редактировать...
Ввести - да, не получается, а выбрать в выпадающем списке можно. Скорее всего, все же надо делать либо полностью вручную, либо использовать для ввода отдельную форму.
iviom (2007-04-13 17:07:00) [10]
> Выводи в обычный Edit...
В Edit никак нельзя, потому что предполагается возможность удобноо редактирования. Поэтому собственно говоря и выбран контрол, способный удобно отображать дату.
> Там есть возможность показать чек-бокс. Можно сделать так,
> что если null - то чек бокс выключен
Попробывала через чекбок, действительно можно, но смотрится как-то не по-русски =). Сереньким дата подсвечивается... Да и не каждый быстро собразит, что надо сначало поставить галочку, а потом только редактировать...
> DateTimePicker1.Format:=' ' ?
А если делать так, то потом никак нельзя редактировать...
А так хочется просто вывести дату, если она есть и не выводить, если ее нет.. И дать человеку ее просто настроить, если он хочет.
Virgo_Style (2007-04-13 15:41:00) [11]
DateTimePicker1.Format:=' '?
{RASkov} (2007-04-13 15:35:00) [12]> [1] _Аноним (13.04.07 15:32)
Там есть возможность показать чек-бокс. Можно сделать так, что если null - то чек бокс выключен
Думаю, будет сбивать с толку... все это. Имхо.
{RASkov} (2007-04-13 15:33:00) [13]> [0] iviom (13.04.07 15:27)
Выводи в обычный Edit...
> или есть дата или нет
если дата=есть тогда Edit.Text:=FormatDateTime() иначе Edit.Text:='даты почему-то нет';
_Аноним (2007-04-13 15:32:00) [14]Там есть возможность показать чек-бокс. Можно сделать так, что если null - то чек бокс выключен