Forum Replies Created
-
AuthorPosts
-
funnyParticipant
Вот еще одна ошибка, которая появилась при переходе с 6-ой на 7-ой версии AC. Если на форме лежит TsPageControl, “шкурки” отключены, TsPageControl.Enabled = False, TsPageControl.Images <> NIL, то текст заголовков закладок пишется на черном фоне. Скриншот и демо для D2009 прилагаю.
funnyParticipantОшибка исчезла после того, как с формы были удалены все объекты (включая TsSkinManager и TsSkinProvider), а затем повторно добавлены, один за другим.
funnyParticipant“Шкурки” все новые, от версии 7.54.
Демо создать не удаётся. Если создавать демо с нуля, то всё работает нормально. Если копирую TsPageControl из моей формы и вставляю в новую форму, то непосредственно в IDE выдается сообщение об ошибке “Scan line index out of range”, но затем проект компилируется и работает без ошибок.
funnyParticipantВозможно, это не “зависание”, а программа уходит на бесконечный цикл, загружая процессор на 100%. У меня произошло такое в версии 7.25 (D7, Win7 c Aero) при открытии одного диалогового окна. Воссоздать эту ситуацию в демке не удалось.
(Продолжаю пользоваться версией 6.61 AC. Видимо, перейти на 7-ую версию в этом году уже не удастся.)
funnyParticipantВ версии AC 7.21 заметил описанную выше ошибку, но уже не в первом столбце, а во втором, третьем и т.д. То есть, Вы исправили ошибку лишь для первого столбца (Item), но она осталась для всех последующих (Item.SubItems). Демо прилагается; Delphi 7, WinXP SP3.
funnyParticipantНасчет TsCheckListBox надо добавить – у него свойство Style равно “lbOwnerDrawFixed”; полагаю, из-за этого элементы списка отрисовываются как выбранные. Так что, это проблема решаемая – я сам присвою цветам нужные значения. Но в версиях AC 5.xx-6.xx проблем с этим объектом не было.
Еще одно наблюдение: если не заходить в главное меню программы, а просто закрыть ее – получаю ошибку “Stack overflow”.
funnyParticipantДа, с версией 7.01 проект компилируется нормально. Но “глюков” с новой версией AC пока многовато, подожду на нее переходить. Успехов!
funnyParticipantОшибка осталась и в AC 6.52 beta.
funnyParticipantНашел решение: положить всё на панель (TsPanel); это заставит все компоненты перерисовываться.
funnyParticipantЕще раз вынужден обратиться к Вам за помощью. В AC 6.40, если используются достаточно новые скины (такие как Acryl, Sapphire, Topaz и др.), не перерисовываются элементы, лежащие поверх TImage. Например, в одной из моих программ на картинке лежат TsBevel, TLabel, TsLabel, TShape – ничего из этого не отображается. Пытался принудительно их перерисовывать (MyShape.Repaint, MyShape.Refresh, MyShape.Invalidate) – никакого результата, ничего не отрисовывается.
Не хотелось бы переделывать всю программу, без картинки TImage не обойтись (ее хочет заказчик). Как принудительно заставить отрисовывать компоненты, лежащие поверх TImage (TsLabel, TsBevel, TShape и т.п.)?
funnyParticipantПонятно, спасибо.
funnyParticipantДа, спасибо за совет, так потом и сделал; просто не сразу сообразил. <img src="style_emoticons//rolleyes.gif” style=”vertical-align:middle” emoid=”:roll:” border=”0″ alt=”rolleyes.gif” />
Всё равно не очень понимаю смысл подобного предупреждения; вот если бы программа с новым скином “падала” или “зависала” – тогда это действительно нужно. Рекомендую, все же, показывать подобные предупреждение, только когда программа запускается из IDE…
funnyParticipantКстати, насколько я помню институтский английский, правильней будет написать: “This version of the skin is not completely supported by the AlphaControls package. Components must be updated up to latest version for using this skin.“
funnyParticipantСвойство Application.MainFormOnTaskBar не использую. Сейчас попробовал присвоить ему True или False – на существование проблемы это не влияет.
Проблема остается и с ВЫКЛЮЧЕННЫМИ скинами. Даже если скины не используются, все равно в процедуре NewWndProc у SkinProvider'a приходится обрабатывать сообщение WM_QUERYENDSESSION. (Сам удивляюсь…)
-
AuthorPosts