Вверх ↑
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
#16: 2009-07-24 17:52:27 ЛС | профиль | цитата
вообще говоря onChange должен видимо происходить всегда, когда меняется дата в элементе вне зависимости от того ввели ее вручную или выбрали из списка. Собственно именно так элемент и работает. Однако при его адаптации в HiAsm было поставлено в 119 строке условие


#pas
if NMDC.dwFlags = GDT_VALID then begin
if (piTime in fControl.opt) or (piUpDown in fControl.opt) then _hi_OnEvent(fControl._event_onChange);
Result := True;
end;
которое отсеяло событие ручного ввода. Зачем - вопрос к автору элемента. Если условие убрать


#pas
if NMDC.dwFlags = GDT_VALID then begin
_hi_OnEvent(fControl._event_onChange);
Result := True;
end;
все будет работать замечательно без плясок с onKeyUp
карма: 27
0
Разработчик
Ответов: 26135
Рейтинг: 2126
#17: 2009-07-24 18:17:27 ЛС | профиль | цитата
Dilma писал(а):
Зачем - вопрос к автору элемента. Если условие убрать

В определенных случая наблюдался двойной onChange, за что меня ткунул носом г. Tad, и я поставил это условие. Выдача двойного onChange не очень удобно
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#18: 2009-07-24 18:46:50 ЛС | профиль | цитата
не вдаваясь в причины получения двойной нотификации есть основания полагать, что выдача двойного события все же лучше его отсутствия вообще. Если в первом случае проблему обойти можно(раз уж она вставла поперек дороги), то во втором - увы.
карма: 27
0
Разработчик
Ответов: 26135
Рейтинг: 2126
#19: 2009-07-24 18:58:20 ЛС | профиль | цитата
Хорошо, еще раз все внимательно просмотрю и добавлю
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#20: 2009-07-24 20:16:52 ЛС | профиль | цитата
nesco писал(а):
меня ткунул носом г. Tad
Убей - не помню.
nesco, там нужно просто запоминать дату и генерить событие по Enter, только если дата изменилась, а так как предложил Dilma, будет три события - на число, месяц и год отдельно.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26135
Рейтинг: 2126
#21: 2009-07-24 21:00:32 ЛС | профиль | цитата
Да в теме про DatePiacker, когда я его переделывал
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#22: 2009-07-24 22:05:48 ЛС | профиль | цитата
Tad писал(а):
будет три события - на число, месяц и год отдельно.

действительно
Tad писал(а):
нужно просто запоминать дату и генерить событие по Enter, только если дата изменилась

решение верное.
карма: 27
0
Ответов: 16884
Рейтинг: 1239
#23: 2009-07-24 22:49:09 ЛС | профиль | цитата
Dilma писал(а):
Tad писал(а)нужно просто запоминать дату и генерить событие по Enter, только если дата изменилась
решение верное.
а может просто по Enter без проверки на изменение даты - часто нужно просто считать дату.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Администрация
Ответов: 15295
Рейтинг: 1519
#24: 2009-07-24 23:03:34 ЛС | профиль | цитата
тогда делать надо как в Edit. Но onChange должен выдавать изменение всегда, когда оно реально было.
карма: 27
0
Разработчик
Ответов: 26135
Рейтинг: 2126
#25: 2009-07-24 23:15:20 ЛС | профиль | цитата
Dilma писал(а):
выдавать изменение всегда, когда оно реально было

Эти и занимается DTN_DATETIMECHANGE. Я нашел, где реально поисходит два события, это по закрытию выпадающего календаря, по редакции поля ввода -- всегда одно
------------ Дoбавленo в 23.29:
Есть выход из этого положения -- запретить использование стрелок UP и Down изменения даты и разрешить редактирование простой строкой, тогда спокойно можно переловить его ввод по Enter событием DTN_USERSTRING
------------ Дoбавленo в 00.36:
Исправлено
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#26: 2009-07-25 01:16:34 ЛС | профиль | цитата
nesco, что я не обновил
C:\MyProg\HiAsm402b178\Elements\delphi\code\hiMainForm_1A087B0.pas(69) Error: Undeclared identifier: '_prop_HintIcon'
C:\MyProg\HiAsm402b178\Elements\delphi\code\hiMainForm_1A087B0.pas(70) Error: Undeclared identifier: '_prop_HintTitle'

зачем ты их заремал ?
И плохо что нет события по Enter. На всегда удобно работать мышью иногда и с клавы приходится.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26135
Рейтинг: 2126
#27: 2009-07-25 01:20:53 ЛС | профиль | цитата
Win, но и Share, тоже обнови. Но это не я правил, а Dilma. Я его и сам хотел спросить -- зачем он убрал эти свойства
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#28: 2009-07-25 01:29:25 ЛС | профиль | цитата
Обновил все и Win и Share. Пока не убрал "две косых" ни один проект не компилировался.
nesco писал(а):
Но это не я правил, а Dilma.

А я на тебя грешил.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26135
Рейтинг: 2126
#29: 2009-07-25 01:41:49 ЛС | профиль | цитата
Возможно, эти правки связаны с созданием Pointer элементов, но не уверен
карма: 22

0
29
Сообщение
...
Прикрепленные файлы
(файлы не залиты)