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

Вниз

Как получить текст из TDateTimePicker ( но не через DateTime!!)   Найти похожие ветки 

 
GenieTM   (2005-11-21 11:16) [0]

Нужно получить текст из TDateTimePicker в любой момент редактирования. Т.е. даже тогда, когда число, месяц или год введены не полностью (н-р 01.01.__20), а находятся в процессе изменения.

Использование свойства Date и DateTime исключено, т.к. эти свойства изменяются только после введения данных полностью.


 
Leonid Troyanovsky ©   (2005-11-21 11:26) [1]


> GenieTM   (21.11.05 11:16)  
> Нужно получить текст из TDateTimePicker в любой момент редактирования.
>  Т.е. даже тогда, когда число, месяц или год введены не
> полностью (н-р 01.01.__20), а находятся в процессе изменения.


OnUserInput?

--
Regards, LVT.


 
EvgeniyR   (2005-11-21 11:28) [2]

var
  S: String;
begin
  S := DateTimeToStr(DateTimePicker1.DateTime);//Дата, время
  S := DateToStr(DateTimePicker1.Date);//Дата
  S := TimeToStr(DateTimePicker1.Time);//Время
end;


 
GenieTM   (2005-11-21 17:36) [3]

Это все не то.

Забыл уточнить, что используется DateMode - dmUpDown.

Но следует учитывать, что дата (DateTimePicker1.DateTime, DateTimePicker1.Date, DateTimePicker1.Time) изменяется только после завершения ввода дня, месяца или года.

Мне же нужно получить текст в процессе изменения (например 01.01.__19)


 
Antonn ©   (2005-11-21 18:05) [4]

GenieTM   (21.11.05 17:36) [3]
Мне же нужно получить текст в процессе изменения (например 01.01.__19)

и какая же дата в примере? только конкретно.


 
Leonid Troyanovsky ©   (2005-11-21 18:18) [5]


> GenieTM   (21.11.05 17:36) [3]

> Мне же нужно получить текст в процессе изменения (например
> 01.01.__19)


 buf: array [0..255] of Char;

 DateTimePicker.Perform(WM_GETTEXT, 256, LParam(@buf));

Ну, а вставишь куда требуется - в OnChange or OnKeyPress or etc.

--
Regards, LVT.


 
GenieTM   (2005-11-21 19:24) [6]


> Leonid Troyanovsky ©   (21.11.05 18:18) [5]


Возвращает значение, аналогичное DateToString(DateTimePicker.Date).

Объясню пошагово, что мне нужно.

Пусть введена по умолчанию дата 01.01.1900 (жирным выделена активная часть)

Изменяю год:

1. Перемещаюсь на 1900 - 01.01.1900

Начинаю вводить 2005-й год:

2. Нажимаю 2 - отображается 01.01.   2
3. Далее 0 - 01.01.  20
4. Далее 0 - 01.01. 200
5. Далее 5 - 01.01.2005

На протяжении всего цикла 1-5 возвращает предыдущую дату 01.01.1900, а уже после завершения введения получим 01.01.2005.

Мне же нужно последовательно получить 01.01.   2, 01.01.  20, 01.01. 200, 01.01.2005...


 
Defunct ©   (2005-11-22 01:25) [7]

GenieTM   (21.11.05 19:24) [6]

блин, откажитесь от TDateTimePicker если оно ([6]) вам так уж сильно нужно. Вводите в эдите либо в трех эдитах, либо возьмите 2 эдита и комбобокс для месяцев. Короче, гупость обычно устраняется глупыми методами.


 
Германн ©   (2005-11-22 02:26) [8]


> Defunct ©   (22.11.05 01:25) [7]

Согласен, но имхо, лучше 2 комбобокса и один эдит.


 
GenieTM   (2005-11-22 16:50) [9]

Это ж сколько лишней возни...

Неужели никак нельзя?


 
Джо ©   (2005-11-22 17:10) [10]


> [9] GenieTM   (22.11.05 16:50)
> Это ж сколько лишней возни...

Дык это как-раз потому, что задача, скажем так, кхм... довольно глупая. Зачем оно нужно?



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

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

Наверх




Память: 0.49 MB
Время: 0.03 c
1-1132640185
Frozzen
2005-11-22 09:16
2005.12.18
"свободный" кастинга типов?


14-1132661452
mr.il
2005-11-22 15:10
2005.12.18
Прикольная вакансия


2-1133546839
coral
2005-12-02 21:07
2005.12.18
ListBox


14-1133214311
SerJaNT
2005-11-29 00:45
2005.12.18
Интегралы


1-1132510190
Дмитрий_05
2005-11-20 21:09
2005.12.18
Использование невизуальных компонентов без формы