Forum Replies Created
-
AuthorPosts
-
December 3, 2011 at 8:55 pm in reply to: Проблема при использовании скинов в DLL в Delphi XE2 с {$DEFINE DEVEX2011} #47304TorbinsParticipant
Они должны быть включены и в приложении и в длл. Причем и то и другое должно компилироваться в одной версии студии.
December 3, 2011 at 4:24 pm in reply to: Проблема при использовании скинов в DLL в Delphi XE2 с {$DEFINE DEVEX2011} #47302TorbinsParticipantВключение рантайм пакетов должно помочь, если конечно это возможно.
TorbinsParticipantВ XE2 можно использовать Template Libraries.
TorbinsParticipantА где у вас BEGIN_MESSAGE_MAP/END_MESSAGE_MAP?
TorbinsParticipantНе вижу в вашем коде аналога сроки
Code:private
procedure MyShow(var m: TMessage); message WM_MyShow;Это привязка сообщения к обработчику.
Еще можете поставить бряк внутри MyShow. Наверняка туда никогда не заходит. Ну и не помешает сравнить значение FoundHandle с реальным.
TorbinsParticipantПример:
Code:const
WM_MyShow = WM_USER + 1;
…
private
procedure MyShow(var m: TMessage); message WM_MyShow;
…
procedure TForm1.MyShow(var m: TMessage);
begin
Show;
end;И в любой другой проге:
Code:const
WM_MyShow = WM_USER + 1;
…
PostMessage(FoundHandle, WM_MyShow, 0, 0);TorbinsParticipantExtendedBorders включены? Попробуйте выключить.
Вообще использовать ShowWindow действительно не стоит. Вместо этого лучше создать обработчик кастомного сообщения, который будет вызывать Show. И соответственно из других прог отсылать именно это сообщение.
TorbinsParticipantМожно проверить настройки самого проекта, там тоже пути могут быть прописаны.
TorbinsParticipantЛучше бы сюда конечно небольшую демку, ну да ладно. К тому коду что вы написали есть два замечания. Во-первых зачем тут PAnsiChar? Во-вторых текущая директория не всегда указывает на папку с программой. Если программа запускается через ярлык, то в свойствах ярлыка можно указать какая директория будет текущей. Плюс она может меняться во время работы программы. Намного надежнее будет такой код: sSkinManager1.SkinDirectory:=ExtractFilePath(Application.ExeName)+'Skins';
TorbinsParticipantВидимо у того парня на компьютере просто нету файлов со скинами в том месте, где они лежат у вас. Варианта два:
- Использовать InternalSkins;
- Распространять скины вместе с программой и при создании формы подправлять SkinDirectory.
TorbinsParticipantДля всех альфовских демок есть исходники. Откройте и посмотрите 😉
TorbinsParticipantПопробуйте выделить для компонентов отдельную папочку на диске. К примеру “D:Components”. И поставьте альфы в эту папку.
TorbinsParticipantПисать в программ файлс под семеркой не самая лучшая идея. Там виртуализация может включится. К примеру проверьте C:Users*AppDataLocalVirtualStore. Это не говоря уже о приколах 64-битных систем.
Еще вопрос: куда указывает $(DELPHI) ?
TorbinsParticipantПути плохо прописаны, проверьте их еще раз.
TorbinsParticipantВключен DPI=120, цвет стекла Aero изменен, вроде больше ничего. Подобные артефакты возникают и на самой свежей демке при ресайзе окна. Если надо, могу запустить тимвьювер.
TorbinsParticipantДа, хорошо, но проблемы возможны. Вот очень хорошая статья на эту тему, возможно она вам поможет пока будете ждать Supportа. А он, когда появится, наверняка попросит демку, или возможность подключится через TeamViewer к вашей машине.
TorbinsParticipantОчень может быть, что проблема именно в библиотеке. Возможно она неверно работает с памятью затирая какие то данные вашего приложения, отсюда и глюки.
TorbinsParticipantА сами файлы скинов вы обновили?
TorbinsParticipantА в древних версиях альф вроде была такая фича?
TorbinsParticipantДо этого альфы уже когда-нибудь стояли? Тогда возможно старую версию не полностью удалили.
-
AuthorPosts