![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить текст из TDateTimePicker ( но не через DateTime!!)
GenieTM © (2005-11-21 11:16:00)Нужно получить текст из TDateTimePicker в любой момент редактирования. Т.е. даже тогда, когда число, месяц или год введены не полностью (н-р 01.01.__20), а находятся в процессе изменения.
Использование свойства Date и DateTime исключено, т.к. эти свойства изменяются только после введения данных полностью.
Джо (2005-11-22 17:10:00) [1]
> [9] GenieTM (22.11.05 16:50)
> Это ж сколько лишней возни...
Дык это как-раз потому, что задача, скажем так, кхм... довольно глупая. Зачем оно нужно?
GenieTM (2005-11-22 16:50:00) [2]Это ж сколько лишней возни...
Неужели никак нельзя?
Германн (2005-11-22 02:26:00) [3]
> Defunct © (22.11.05 01:25) [7]
Согласен, но имхо, лучше 2 комбобокса и один эдит.
Defunct (2005-11-22 01:25:00) [4]GenieTM (21.11.05 19:24) [6]
блин, откажитесь от TDateTimePicker если оно ([6]) вам так уж сильно нужно. Вводите в эдите либо в трех эдитах, либо возьмите 2 эдита и комбобокс для месяцев. Короче, гупость обычно устраняется глупыми методами.
GenieTM (2005-11-21 19:24:00) [5]
> 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...
Leonid Troyanovsky (2005-11-21 18:18:00) [6]
> 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.
Antonn (2005-11-21 18:05:00) [7]GenieTM (21.11.05 17:36) [3]
Мне же нужно получить текст в процессе изменения (например 01.01.__19)
и какая же дата в примере? только конкретно.
GenieTM (2005-11-21 17:36:00) [8]Это все не то.
Забыл уточнить, что используется DateMode - dmUpDown.
Но следует учитывать, что дата (DateTimePicker1.DateTime, DateTimePicker1.Date, DateTimePicker1.Time) изменяется только после завершенияввода дня, месяца или года.
Мне же нужно получить текст в процессе изменения (например 01.01.__19)
EvgeniyR (2005-11-21 11:28:00) [9]var
S: String;
begin
S := DateTimeToStr(DateTimePicker1.DateTime);//Дата, время
S := DateToStr(DateTimePicker1.Date);//Дата
S := TimeToStr(DateTimePicker1.Time);//Время
end;
Leonid Troyanovsky (2005-11-21 11:26:00) [10]
> GenieTM (21.11.05 11:16)
> Нужно получить текст из TDateTimePicker в любой момент редактирования.
> Т.е. даже тогда, когда число, месяц или год введены не
> полностью (н-р 01.01.__20), а находятся в процессе изменения.
OnUserInput?
--
Regards, LVT.