Forum Replies Created
-
AuthorPosts
-
PostscripterParticipant
Ау…
PostscripterParticipantQuote:Кстати, клеточку будет видно только после запуска прогиВо, блииин…)
PostscripterParticipantДемка – та же что и выше. Заменил все панели на TsPanel и поставил CHECKBOX – панель стала чисто белая… поставил FORM – стала в клеточку, но с границами, что не гуд.
Да ладно, не заморачивайтесь, это не критично… Главное что не вылетает и не зависает больше.
PostscripterParticipantПанель лежит на форме. Фон формы – в клеточку (такой скин), соответственно TPanel с отключенными Inner и Outer бордюрами (паребриками/фасками/…) растворяется, становится прозрачной, и из-под неё проступает клетка. Как в примере. А TsPanel так не может… Поэтому, думаю, лучше оставить TPanel и подождать исправления глюка Support-ом. Пока что есть костыль…
PostscripterParticipantПробовал всё. Checkbox – становится белой, хотя форма – в клеточку.
PostscripterParticipantА есть способ сделать альфа-панель прозрачной? Чтобы было видно саму форму? пробовал сделать SkinSection=FORM, но появилась рамка…
PostscripterParticipant'Torbins' wrote:предлагаю заменить все панели и кнопки ихними аналогамиКак раз в процессе. По мере замены ошибок и вылетов становится меньше 😀 Хотя есть и ещё способ – вызвать aForm.Position := poScreenCenter дважды. Чёрт возьми, да это же правило чётной ошибки! Дедушка Дейкстра был бы доволен)))))
Anchors никогда не юзал… Надо будет почитать мануальчик.
PostscripterParticipantДилема – отказаться от AC, или отказаться от использования TSpeedButton… Выбрал пока второе)) Заменил все TSpeedButton на TsSpeedButton — не помогло. Панель становится серой. Однако (!) вылеты на строчке Skin.active:=false; прекратились.
PostscripterParticipantИ ещё – если в процедуре LeaveAdmin дописать в конце skin.Active:=false;, то в этом месте всё просто изумительно рушится и восстановлению уже не поддаётся :a1: Глюкодромище, одним словом…))
PS Чтобы вызвалась эта процедура, нужно войти в режим управления (кнопка с шестерёнкой), а потом выйти из него. Пароль указан в txt-файле, кажется это был нолик.
PostscripterParticipantА, нет, ошибся – про повторном вызове вообще перестают скинироваться кнопки, расположенные на панели)))))
PostscripterParticipantПонимаю 🙂
PostscripterParticipantВот так, например [attachment=5489:851_extra_normal.png]
PostscripterParticipantА… сорри, Всё нормально, это просто шкурка от предыдущей версии 🙂
PostscripterParticipantУра, всё работает!!! http://exnax.narod.ru/antivir.htm
PostscripterParticipantКогда она скинится, там другие сообщения приходят. Целая куча. А эти – тоже от альф, да – но именно при создании и уничтожении.
PostscripterParticipantА ещё я заметил, что при уничтожении (при создании тоже) SpeedButton получает сообщение $A100, причём только в тех случаях, когда скинизация включена. То есть, как-то это событие всё же себя проявляет.
PostscripterParticipantА ещё можно проверять if (Ctrl is TSpeedButton). Только вот не уверен – всегда ли после вызова деструктора объекта он перестаёт отвечать этому условию… И что будет, если вместо Ctrl подставить что-нибудь левое, типа $0001 🙂
PostscripterParticipantТри строчки, я имел в виду, это “уменьшить глобальный счётчик кнопок ButtonsCount”, “освободить SpeedButton.Glyph” и “вызвать деструктор предка”. Вряд ли на других Delphi как-то сильно по-другому… Ну да ладно, не моё дело. Главное что проблема проблемой больше не будет :a7:
Во всяком случае, пока кто-нибудь не вызовет SpeedButton.Destroy до того как Application будет Terminated 😀
PostscripterParticipantQuote:нельзя отследить когда он уничтожаетсяМожно сплайсингом перехватить метод TSpeedButton.Destroy и заменить на свой. Можно даже не сохранять оригинальный деструктор, освободить память своими силами. Там всего 3 строчки.
PostscripterParticipantМм.. Странно, с другими компонентами ведь так не происходит?
А когда обновления ждать?
-
AuthorPosts