Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.13;
Скачать: CL | DM;

Вниз

TDateTimePicker   Найти похожие ветки 

 
iviom   (2007-04-13 15:27) [0]

Здравствуйте.
Подскажите, пожалуйста, по поводу котнрола TDateTimePicker. Вывести в него дату получилось, при это я установила свйоства:
Format:= "dd.MM.yyyy HH.mm.ss";
Kind:= dtkTime;

Как не выводить туда дату? Чтобы в поле ничего не было?
Я использую грид, в котором или есть дата или нет (то есть NULL). И по  нажатию(выделению строки) хочу выводить значение даты в данный контрол.


 
_Аноним   (2007-04-13 15:32) [1]

Там есть возможность показать чек-бокс. Можно сделать так, что если null - то чек бокс выключен


 
{RASkov}   (2007-04-13 15:33) [2]

> [0] iviom   (13.04.07 15:27)

Выводи в обычный Edit...

> или есть дата или нет

если дата=есть тогда Edit.Text:=FormatDateTime() иначе Edit.Text:="даты почему-то нет";


 
{RASkov}   (2007-04-13 15:35) [3]

> [1] _Аноним   (13.04.07 15:32)
Там есть возможность показать чек-бокс. Можно сделать так, что если null - то чек бокс выключен

Думаю, будет сбивать с толку... все это. Имхо.


 
Virgo_Style ©   (2007-04-13 15:41) [4]

DateTimePicker1.Format:=" " ?


 
iviom   (2007-04-13 17:07) [5]


> Выводи в обычный Edit...


В Edit никак нельзя, потому что предполагается возможность удобноо редактирования. Поэтому собственно говоря и выбран контрол, способный удобно отображать дату.


> Там есть возможность показать чек-бокс. Можно сделать так,
>  что если null - то чек бокс выключен


Попробывала через чекбок, действительно можно, но смотрится как-то не по-русски =). Сереньким дата подсвечивается... Да и не каждый быстро собразит, что надо сначало поставить галочку, а потом только редактировать...


> DateTimePicker1.Format:=" " ?


А если делать так, то потом никак нельзя редактировать...

А так хочется просто вывести дату, если она есть и не выводить, если ее нет.. И дать человеку ее просто настроить, если он хочет.


 
Virgo_Style ©   (2007-04-13 19:43) [6]

iviom   (13.04.07 17:07) [5]
А если делать так, то потом никак нельзя редактировать...


Ввести - да, не получается, а выбрать в выпадающем списке можно. Скорее всего, все же надо делать либо полностью вручную, либо использовать для ввода отдельную форму.


 
Virgo_Style ©   (2007-04-13 19:51) [7]

Лично мне вариант через 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, только несколькими контролами.


 
{RASkov}   (2007-04-13 23:54) [8]

Ну может быть вот эту версию раскрутить. Без чекбокса(он всамом деле сбивает столку):

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-14 11:08) [9]

{RASkov}   (13.04.07 23:54) [8]
А если дата была введена, а теперь надо ее сделать Null?
Ну и вместо FModified, возможно, лучше использовать Tag, особенно если таких DateTimePicker"ов будет несколько.


 
{RASkov}   (2007-04-14 11:28) [10]

> А если дата была введена, а теперь надо ее сделать Null?

Как вариант - можно обработать нажатие клавишь Del+Ctrl... например.

> Ну и вместо FModified, возможно, лучше использовать Tag,
> особенно если таких DateTimePicker"ов будет несколько.

Эт точно.


 
_Аноним   (2007-04-14 11:44) [11]

Тут вопрос в том, данные доступны только для чтения, или же и для модификации (в том числе для уствновки NULL)
если первое - то выводить в эдит
если второе - то пикер с чекбокасами, имхо


 
iviom   (2007-04-18 17:07) [12]

Спасибо, болшое, за ответы. Решила все-таки с чекбоксами пока попробывать.
Только вот такая странность появилась.
DateTimePicker позволяет одновременно изменить только либо дату либо время. Это зависит от свойства DateTimePicker.Kind. Если там стоит свойство dtkDate - то контрол позволяет пользователю менять дату, а если dtkTime - то время. Как бы сделать так, чтобы пользоватлеь мог менять и время и дату?


 
_Аноним   (2007-04-18 22:24) [13]


> Как бы сделать так, чтобы пользоватлеь мог менять и время
> и дату?

Два DateTimePicker"а рядом


 
dmdel ©   (2007-04-19 09:23) [14]

Лично я пользуюсь в этих случаях компонентом DateEdit. Это Rx-lib. Если надо, могу прислать.



Страницы: 1 вся ветка

Текущий архив: 2007.05.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.05 c
2-1177317931
evgenij_
2007-04-23 12:45
2007.05.13
Запустить Access Report из Delphi


4-1166178056
niko
2006-12-15 13:20
2007.05.13
Создание окна с помощью CreateWindowEx в Си


1-1174234172
Kolan
2007-03-18 19:09
2007.05.13
Пункт &amp;laquo;Load Icon&amp;raquo; недоступен в опциях проекта, почему?


1-1174234562
Midnighter
2007-03-18 19:16
2007.05.13
Динамическая линковка интерфейсов


3-1172500836
avsam
2007-02-26 17:40
2007.05.13
ADO-версия. Как узнать?