Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить текст из 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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо