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