Forum Replies Created
-
AuthorPosts
-
alex000Participant
Спасибо, так лучше!
alex000ParticipantОгромное спасибо!
Не у каждой библиотеки есть такой отзывчивый Support 🙂
alex000Participanthttp://forum.vingrad.ru/act-Print/client/printer/f-94/t-235168.html – Здесь сталкивались с аналогичной проблемой,но решения так и не нашли.
Возможно что-то с настройками путей.
Как вариант – закомментируйте строку которая вызывает ошибку (FMTBcd.hpp (131))
alex000ParticipantНет, это не влияет.
Да, баг TMainMenu странный, но не единственный в своем роде – на QC нашелся похожий баг – http://qc.embarcadero.com/wc/qcmain.aspx?d=892
Похоже, здесь ноги растут из свойства TMainMenu->OwnerDraw – если поставить его в false, то в моем случае – все работает 🙂 (ура!)
А вот в демке – появляется новый баг 😆
Там не рисуются иконки меню первого уровня,но только если на форме лежит TreeView! Это происходит только с выключенными скинами, так что еще раз повторю – это не баг альфы.
Еще раз спасибо за помощь! :a4:
alex000ParticipantТочно одно – альфа тут не при чем – баг проявляется даже вообще без AlphaControls.
Смысл проблемы в том, что если TTreeView создается раньше MainMenu, то этот TTreeView как-то влияет на расчет размеров меню.
Учитывая что влиять на порядок создания визуальных компонентов практически невозможно – единственный выход – создавать TTreeView run-time.
alex000ParticipantДа, точно – похоже это глюк VCL. Значит, можно считать что альфа не виновата.
Если с этим ничего не удастся решить – то я могу просто избавиться от TsTreeView (виновника бага).
Вернее не избавится, а создавать rum-time – уже после того как размеры меню рассчитаны – так меню работает правильно.
Спасибо за помощь!
alex000ParticipantВидимо, это какая-то особенность DelphiXe, так как у меня этот пример скомпилировался и запустился без ошибок.
alex000Participant1) цель – это уменьшить размер exe ?
2) Можно пример Access Violation – у меня все работает (под BDS 2006)
alex000ParticipantЗабавный эффект – в версии 7.42 меню в демке работает нормально. А в моем проекте – нет.
Опытным путем стало ясно что дело в Creation Oreder – в демке SkinManager1 создается первым, а в моем приложении он вообще в отдельном дата модуле (который все равно создается раньше главной формы).
Если в демке поменять Creation Oreder чтобы SkinManager созавался позже MainMenu – баг возвращается.
[attachment=4840:Menu_2.zip]
May 23, 2011 at 12:28 pm in reply to: Solved issue with charset in forms and dialogs captions #45759alex000ParticipantВопрос по прежнему актуален – я не могу перейти на ветку 7.40 🙁
Меня устроило бы или добавление свойства UseSysCharSet в TsSkinProvider, или в TsSkinManager или добавление его в виде глобальной переменной – главное чтобы на системный charset заголовка можно было влиять.
alex000ParticipantВ версии v7.42 указанные проблемы кажется решены.
alex000Participant'Support' wrote:Здравствуйте
К сожалению EhGrid не предоставляет средств для управления рисованием заголовков.
Можно только отключить OptionsEh.Fixed3D, если скины включены…
Если такое решение подходит, то я могу попробовать добавить автоматическое изменение этого свойства, если запущено не под Aero.
А нельзя ли сделать это отключение OptionsEh.Fixed3D настраиваемым ?
Просто я не использую XPManifest, и в версии 7.42 грид стал выглядеть как-то “странно”..
Или хотя бы проверку добавить, чтобы отключать Fixed3D только когда ThemeServices.ThemesEnabled = true
alex000ParticipantПо-моему это косяк компилятора – в sGraphUtils.obj есть функция:
Code:@Sgraphutils@GetBGInfo$qqrpx16Sconst@TacBGInfopx17Controls@TControloА то что объявлено в .h файл манглится как:
Code:@Sgraphutils@GetBGInfo$qqrxp16Sconst@TacBGInfopx17Controls@TControloТо есть разница всего два символа xp <-> px.
Против этого косяка компилятора есть недокументированный способ – добавить алиас на эту функцию:
Нужно добавит строчку:
Code:#pragma alias “@Sgraphutils@GetBGInfo$qqrxp16Sconst@TacBGInfopx17Controls@TControlo”=”@Sgraphutils@GetBGInfo$qqrpx16Sconst@TacBGInfopx17Controls@TControlo”Я здесь уже упоминал этот способ для некоторых других функций. К сожалению это единственный способ бороться с глюками компилятора.
alex000Participant'Support' wrote:Возможно решением будет добавление свойства UseSysCharSet в TsSkinProvider?
Могу добавить его в ближайшей версии.
Да, было бы неплохо. Только не уверен что в TsSkinProvider – мб лучше в TsSkinManager?
Просто некоторые формы/диалоги могут скинится run-time, и до свойств TsSkinProvider там не добраться.
alex000Participant'TopCore' wrote:Здравствуйте! Подскажите, пожалуйста, как можно узнать координаты формы при ExtendedBorders = True. Спасибо.
Пожалуйста уточните свой вопрос.
Есть какая-то разница в определении положения формы при ExtendedBorders = True и ExtendedBorders = False ?
alex000Participant'sylar' wrote:Мне никто не поможет? 🙁
Support обязательно ответить, как только будет время – ведь он один, а нас много 😉
По теме:
EhLib использует свою функцию ThemesEnabled(), которая использует ThemeServices.ThemesEnabled чтобы определить включены ли темы, и если включены – отрисовывает заголовок по-другому 🙁
Как это исправить:
1) Патчить EhLib чтобы он так не делал
2) Если скины включены – отключать темы. В здесь есть пример хака, позволяющий “отключить” темы.
3) Какой-то другой хитрый способ которого я не знаю 😉
И можно вопрос – какой смысл использовать манифест, если все равно он перекрывается скинами ?
alex000ParticipantХоть проблема и решена, еще раз подниму эту тему.
Копаясь в исходниках VCL, нашел занятную вещь, которая может здесь помочь:
Code:PointerArray = array [0..512*1024*1024 – 2] of Pointer;
PPointerArray = ^PointerArray;
{$NODEFINE PointerArray}
(*$HPPEMIT 'namespace System' *)
(*$HPPEMIT '{' *)
(*$HPPEMIT ' typedef void *PointerArray;' *)
(*$HPPEMIT '}' *)Выходит, глюки в генераторе hpp
заложеныучтены авторами Delphi 🙂То есть, получается что добавление такого магического заклинания после объявления TsCaptionButton решает вопрос:
Code:{$NODEFINE TsCaptionButton}
(*$HPPEMIT 'namespace Sskinprovider {' *)
(*$HPPEMIT 'class DELPHICLASS TacSBAnimation;' *)
(*$HPPEMIT 'struct TsCaptionButton' *)
(*$HPPEMIT '{' *)
(*$HPPEMIT ' int State;' *)
(*$HPPEMIT ' int ImageIndex;' *)
(*$HPPEMIT ' #pragma pack(push,1)' *)
(*$HPPEMIT ' Types::TRect Rect;' *)
(*$HPPEMIT ' #pragma pack(pop)' *)
(*$HPPEMIT ' bool HaveAlignment;' *)
(*$HPPEMIT ' int GlowID;' *)
(*$HPPEMIT ' TacSBAnimation* Timer;' *)
(*$HPPEMIT ' unsigned HitCode;' *)
(*$HPPEMIT '}; }' *)Это конечно костыль, но по крайней мере не нужно вырезать лишнюю копию каждый раз. Нужно только следить чтобы объявление этой структуры в pas и hpp совпадало.
Автоматическое вырезание второго TsCaptionButton тоже вариант, но тогда просьба включить его и для BCB2006 – дубли есть в CB6 и BCB2006. Начиная с BCB2007 и далее компилятор не создает дубликатов.
alex000Participant'Support' wrote:Это в Win 7, видимо? Постараюсь поправить в следующем релизе.
Нет, проверял только под WinXP. Как под Win7 не знаю.
В версии 7.41 текст по-прежнему наезжает на иконку.
alex000ParticipantСвойство TsHintManager->HTMLMode = true.
Поддерживаются теги FONT, U, B, I, BR
April 26, 2011 at 6:30 am in reply to: Solved issue with charset in forms and dialogs captions #45531alex000ParticipantПроблема лишь в том, что я не могу повлиять на “системный” charset заголовка 🙁
У всех контролов charset ставится, а у заголовка формы, получается что нет.
Кстати, я уже не помню точно, но под Win98 поведение стандартного заголовка формы было другим – тогда он реагировал на charset. Хотя сейчас это уже не важно.
Из за этой проблемы я не могу перейти на ветку 7.40
-
AuthorPosts