Forum Replies Created
-
AuthorPosts
-
AstiiParticipant
Всё ещё актуально для меня.
Нажимаем на выбор полей и получаем ошибку, причём в демо ошибка сразу, а в проектах иногда при закрытии формы со списком полей. При выключенном скинировании ошибки нет.
January 18, 2013 at 11:52 am in reply to: AC 8.15 проблема с отрисовкой и изменением размера у PageControl #49954AstiiParticipantУ меня закладки от PageControl (штатный, не AC) стали прозрачные или белые если форму покружить.
Попробовал удалить из ThirdParty – появились, но не скинируются.
AstiiParticipant'elpik' wrote:Дык это и не АС, это сторонний элемент управления, и без исходника, где гарантия что он написан на основе стандартных компонент делфи? это может быть и не делфи вообще. потому АС его и не скинирует она не понимает что это за класс…
Как вариант попробуйте в 3rd party – добавить этот класс и подставте ему в качестве замены TreeView (или какой нибудь другой подходящий класс)… но не думаю что получится что нибудь толковое…
Спасибо! Но через 3rd party никакого толку, как вы и предположили. Скинируется компонент только темой винды. Выложить не могу его.
Не получается и сделать его в стиле XP, если приложение запущено в системе с темой Windows Classic.
AstiiParticipantА никак нельзя, чтобы они “AC” попросили нарисовать их? Или может быть хотя-бы попросили нарисовать себя в стиле “Windows XP”, даже если выбрана “Windows Classic”?
AstiiParticipantЭто не мой ActiveX и он не на Delphi. То есть, без наличия исходников никак? Операционная система другими способами “скинирует”?
AstiiParticipant'Cinemaizer' wrote:В общем, откатил до версии 8.10 – все ок.
У меня на <=8.10 нестабильные глюки с выбором даты: см. тему, которую я указывал выше. Приходилось, вообще отказываться от этого компонента. Всё ОК, пока кто-то из пользователей не сделает одно из описанных действий. Начиная с 8.12, как раз ЭТИХ глюков нет. Тоже лежит на TsPageControl.
AstiiParticipant'Bat1' wrote:Вы уверены что ЭТО стабильно?
При нажатии на кнопку выбора даты в TsDBDateEdit:
…
Появляется не всегда, может целый день быть нормально, тут уж как повезет. Причем если один раз появилось, то повторяется после этого снова и снова до перезапуска программы.
AC 8.11, Delphi XE
У меня в 8.12 такого нету. Ну или пока я ещё не обнаружил и пользователи жаловаться перестали.
AstiiParticipant'Cinemaizer' wrote:Заметил жесткий глюк, связанный похоже с утечкой памяти при работе с TsDateEdit во фреймах. Раньше все было нормально. Почините побыстрее пожалуйста.
Как это нормально раньше было? См. тему.
Про память не скажу, а вот компонентом полноценно пользоваться нельзя было – сейчас это исправлено.
AstiiParticipantА если попытаться включить и выключить, то свойство WordWrap почему-то не работает.
Code:Memo_Bed.Enabled := True;
Memo_Bed.Text := Item.Caption;
Memo_Bed.Enabled := False;AstiiParticipantСпасибо разработчикам. В версии v8.11 календарь TsDateEdit работает стабильно.
AstiiParticipantОгромное спасибо!
Шрифт и размер поменял как хотелось.
AstiiParticipantЧерез SkinMenu если скин выбираешь ошибок нет?
А если с уже выбранным в DesignTime скином запускать?
Пишу
Code:sknmng1.SkinName := 'Acryl';
sknmng1.UpdateSkin(true);и никаких ошибок и зависов (скины в файлах).
Чтобы сказать наверняка нужна демка простая и со всеми исходниками.
AstiiParticipantНа последней стабильной версии v8.10 ошибка с расчётом последнего числа месяца сохранилась (на событие OnChange стоит расчёт этой даты, на OnExit не подходит).
Напомню: на форме два компонента DateTimePicker, на OnChange первого стоит расчёт последнего числа месяца и присвоение рассчитанного значения второму.
Так вот, вводим с клавиатуры в первый контрол, например, “04.04.2011”, получаем во втором “30.04.2020“. Если кликать мышкой, то всё корректно.
Двадцатый год рассчитывается после ввода первых двух чисел, хотя установлен формат четырёхзначного года.
И второй глюк: попробуйте развернуть календарь и выбрать на панели задач что-то другое, кроме тестируемого приложения или нажать “свернуть все окна”. На экране останется сам календарь и будет висеть поверх всего.
AstiiParticipantБету последнюю не ставил пока. Постараюсь посмотреть.
AstiiParticipantУже писал в посте №5. Очень актуально и не стабильно. Начинаешь строить отчёты за разные периоды и в какой-то момент понимаешь, что даты то не те выбираются.
Время от времени происходит следующий глюк с этим компонентом: кликаешь, например на 4-ое октября, а выбирается 3-ие октября. То есть, выбирается не та дата, на которую кликаешь, а на один день меньше.
AstiiParticipantУ него есть LookAndFeel.NativeStyle? Попробуй переключить.
ParentColor?
AstiiParticipantЭто Девэкспресс?
Ключ при компиляции AC для DEVEXPRESS включён?
Другие компоненты из состава раскрашиваются?
AstiiParticipant'Support' wrote:Теперь, думаю, все понятно, спасибо за подробности.
В данном случае разница в работе TsDateEdit и TDateTimePicker заключается в том, что OnChange у TsDateEdit возникает при каждом изменении текста в компоненте, то есть, когда пишем 05.04.20, то он это воспринимает как двадцатый год, дата становится больше чем во втором компоненте и он поэтому также изменяется.
А почему он так воспринимает? YearDigit установлен на dyFour.
'Support' wrote:Чтобы получить такое же поведение как у DateTimePicker можно сравнение установить в событие OnExit, тогда будет то, что хотите.
С OnExit пользователь может исправить дату и закрыть форму и тут возникнут разночтения – пользователь уверен, что дата исправлена, а обработка события OnExit не случилось. Конечно, это дурацкий интерфейсный приём, но он существует.
'Support' wrote:Проверка на корректность введенной даты включается свойством CheckOnExit, но там при возникновении ошибки появляется окошко, говорящее об этом, а не меняется молча значение компонента, как в DateTimePicker.
Оба эти различия были введены по просьбам пользователей пакета еще много лет назад, вроде говорили, что предупреждение о неправильной дате лучше, чем тихое и незаметное для пользователя ее изменение.
Жаль я пропустил эти посты. Голосовал бы за опциональное включение автоисправления. Поищу по форуму для чего нужно вводить не существующие даты.
При запуске в среде разработки – эксцепшн, а при запуске скомпилированного приложения сообщение на английском.
AstiiParticipant'Support' wrote:OnActivate не будет вызываться в версии 8.03
Спасибо!!!
'Support' wrote:Сравнивание дат не нужно усложнять, все просто. Календари возвращают правильные даты, нужно только разобраться с тем, что мы хотим.
Я не понимаю – что неправильно делает календарь. Поэтому еще раз по порядку :
1. При запуске демки оба компонента TsDateEdit пустые, дата имеет нулевое значение. У Вас не так?
2. При выборе даты в первом контроле происходит сравнение его даты со значением даты второго, которая 0. У Вас не так?
3. Вторая дата меньше, поэтому ее значение становится равным концу месяца. У Вас не так?
1. Всё так.
2. Тоже так.
3. И это абсолютно так.
Теперь введём конкретные даты с клавиатуры, чтобы можно было воспроизести:
4. Заходим во второй контрол и печатаем 31.11.2004 или 30.02.2006. Такие даты не должен позволять ввести контрол, как мне кажется.
5. Исправляем дату во втором контроле на существующую, например, 05.04.2012 и вводим в первый, например, 06.04.2011. Получаем во втором 31.05.2013. Можно и другую дату получить на основе этих же: попробуйте выделять перед вводом всю дату или её конкретную составляющую. Собственно этот пункт и хотел, чтобы Вы посмотрели.
AstiiParticipant'AGSoft' wrote:При выборе даты вызывает событие onActivate у формы на которой он расположен.
У меня тоже самое, стараюсь не использовать onActivate, где есть sDateEdit компонент.
Такое ощущение, что выпадающий календарь – форма, возвращаясь с которой происходит onActivate формы на которой компонент.
Чтобы “подвесить” приложение с TsDateEdit нужно сделать так: на форме с TsDateEdit нажать на кнопку развёртывания календаря, но дату не выбирать. Нажать на “свернуть все окна” в Windows, потом через Alt-Tab перейти на приложение. Увидим не приложение, а только сам календарь. Выбрать дату. Всё – приложение “висит”. Вот это мне пользователи продемонстрировали. Пристёгиваю демо. Скажите: что не так?
Насчёт сравнения дат: у меня на скриншоте видно, что во втором контроле дата введена. Как же сравнить даты?
Передать значение свойства Date в переменную? Будут принципиальные изменения? Я правда всегда сравнивал значения свойства подобных контролов. Никогда не разочаровывался, поэтому и написал. Подскажите правильный алгоритм.
-
AuthorPosts