Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.045 c
4-1165973458
Джо
2006-12-13 04:30
2007.05.13
IMAPI for DVD disks in XP


2-1176958996
Dmdel
2007-04-19 09:03
2007.05.13
Раскпывающийся список в ComboBox-е


2-1177319049
СержК
2007-04-23 13:04
2007.05.13
Не получается сформировать документ Word


2-1177403993
Neket
2007-04-24 12:39
2007.05.13
Сравнить строки в Excel


1-1174233385
Alexey (AZ)
2007-03-18 18:56
2007.05.13
Переопределить глубокозарытый метод.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский