![]() |
|
![]() ![]() ![]() |
|
cyberstream |
|
||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Hello, ALL !!! Озадачился сегодня следующим:
Создаём пункт системного меню
Где копнуть, что упустил? --------------------
Не знаешь кого спросить? - Спроси google! |
||||||||||
|
|||||||||||
Vyacheslav |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Main form
-------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Виноват. Забыл указать для Form2 установить
FormStyle = fsStayOnTop(всегда по верху) Postion = poOwnerFormCenter (по центру окна владельца) -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
cyberstream |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Действительно, всё гениальное просто. Преогромный thanks, Vyacheslav !!
![]() Вот только: 1. У вас работает изящная конструкция вида
![]() 2.Если у формы AlphaBlend=false; (чтобы не тормозило при Resize, Move...),
--------------------
Не знаешь кого спросить? - Спроси google! |
||||||
|
|||||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
||||
|
||||
Vyacheslav |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
У меня тоже ![]() Изящная конструкция не проходит. Так что Ваше решение более изящно, потому как работает ![]()
Добавлено @ 17:43
-------------------- С уважением, Вячеслав Ермолаев |
||||||||
|
|||||||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 32 Всего: 158 |
||||
|
||||
cyberstream |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Ладно, пускай тормозит, выставим при создании.
И ещё вопрос: Вторую форму пихаем в dll, код коего следующий
![]()
--------------------
Не знаешь кого спросить? - Спроси google! |
||||
|
|||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Не в том.
1)Первый вариант(не очень хороший). Перед вызом формы из dll выполнить подмену Аpplication из dll на Application приложения. И перед выгрузкой dll выполнить замену обратно. В dll должны быть функции типа
2)Второй вариант. Собрать и dll и приложение с включенной опцией Build with runtime package -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
cyberstream |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
![]() У меня не получается. Куда пихать вызов ShowWindow(Handle, SW_HIDE); и использовать ли его вообще? Другие варианты есть? Он не всегда работает, как хочется? Код формы в DLL
Код DLL
И ещё вопрос. Имеем: простое приложение, 1 форма. Почему не вызывается FormDeactivate при потере фокуса? Что за специфика такая непростая у этого события?
--------------------
Не знаешь кого спросить? - Спроси google! |
||||||||
|
|||||||||
cyberstream |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Ладно, сделаем по-другому, как в OnDeactivate, Minimize example в Builder Нelp
Если отключить rBuild with runtime package, то будет fade-иться, но не спрячется в Taskbar-e, если влючить - наоборот, не появится на панели задач, но и не захочет закрываться при потере фокуса. Как это побороть? --------------------
Не знаешь кого спросить? - Спроси google! |
|||
|
||||
cyberstream |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Ребята, вы где?
У кого какие мысли есть? Поделитесь !! --------------------
Не знаешь кого спросить? - Спроси google! |
|||
|
||||
Vyacheslav |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Должно получиться. Убедись, что точно экзешник и dll перестроены с данной опцией. Это весьма известный эффект и способы его решения стандартны ShowWindow(Handle, SW_HIDE); использовать не нужно.
А почему оно должно вызываться. Форма в приложении фокуса не теряет, так как форма в приложении одна. А то, что Вы переключаетесь на другое приложение, делая текущее неактивным, форме до этого дела нет. -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
cyberstream |
|
||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Убедился, да и по размеру видно, что И как было скомпилено. Сдвигов нет. 8(
Но как только оформляем DLL, начинается ... Если с Build with runtime packages то 2-я кнопка появляется по-любому - и с SW_HIDE и без SW_HIDE. Зато закрывается, теряя фокус. Если компилим без runtime packages (при этом отключать Use dynamic RTL ??? ), то с подменой Аpplication-ов и с SW_HIDE 2-е окно не вылезет, но уже и не захочет прятаться при потере фокуса. Не знаю уже, что и делать! Есть подозрения, что присутствует разумное этому объяснение, вот только какое? --------------------
Не знаешь кого спросить? - Спроси google! |
||||||||
|
|||||||||
Vyacheslav |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Не могли бы Вы прояснить следущие взаимоисключающие фразы фразы
Так появляется или не появлется? Уверяю Вас, что у Вы что-то собираете не так. Совершенно точно, что кнопка не появится, если собирать с включенной опцией Build with runtime. И разумное объяснение этому делу есть. При такой сборке на exe и dll присутсвует один общий эксземпляр Application. Еще раз и очень громко(чтобы все слышали) НЕ ТОЛЬКО DLL, НО И ОСНОВНОЕ ПРИЛОЖЕНИЕ ДОЛЖНО БЫТЬ СОБРАНО С BUILD WITH RUNTIME PACKAGE. Что бы окончательно убедиться в этом идите сюда. Там внизу есть пример. К сожалению, он сразу не оттранслируется. Там прописались лишние пакеджи, которых нет у Вас. Отредактируйте строчку, которая расположена ниже Build with runtime: уберите все, начиная с ExtAction. И оттранслировав, Вы сможите убедиться, что формыЮ загружаемые из DLL не создают лополнительных кнопок на таскбаре. Кстати, может у Вас с этой строчкой что-то не впорядке. Например, она пустая ? -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
cyberstream |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
НЕ ТОЛЬКО DLL, НО И ОСНОВНОЕ ПРИЛОЖЕНИЕ ДОЛЖНО БЫТЬ СОБРАНО С BUILD WITH RUNTIME PACKAGE.
[/code] Так и делаю.
[code=nocolor] --------------------
Не знаешь кого спросить? - Спроси google! |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Вы пример мой собрали?
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
cyberstream |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Ваш пример собрал. Работает. Кнопка не появляется. А у меня должно было работать Код DLL и формы или определённо нет?
И как заставить форму закрываться при потере фокуса? --------------------
Не знаешь кого спросить? - Спроси google! |
|||
|
||||
FFFFFFF7 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 13.10.2006 Репутация: 2 Всего: 2 |
Смотря какого... Перепеши .ТApplication->OnDeactivate(), или TForm->OnDeactivate Это сообщение отредактировал(а) FFFFFFF7 - 17.10.2006, 10:30 --------------------
Да помоги кодеру, а значит - ближнему своему! |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Ты бы уж выложил в архиве полностью проект, а то словами объяснять получается малоэффективно. -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
cyberstream |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
--------------------
Не знаешь кого спросить? - Спроси google! |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Ну вот все и выяснилось. Извините, но до меня не дошло, что Вы используя dll пытаетесь линковать ее статически. Обычно dll подгружают динамически, чтобы иметь возможность модифицировать ее код, не занимаясь перекомпилированием основного приложения.
Если Вам так уж необходимо линковать статически, то тогда уж используйте package вместо dll. Package - это dll от Borland и там все проблемы решены. Кстати при статической линковке можно просто экспортировать класс формы и с ним работать , а не использовать функцию. Если же надумаете использовать динамическую подгрузку dll, то я приааттачил проект с динамической подгрузкой. При работе с ним лучше открывать не отдельные проекты, целиком группу(файл FormInDll.bpg ) Присоединённый файл ( Кол-во скачиваний: 6 ) ![]() -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
cyberstream |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Не могу скачать ваш архив.
Отчего так ? --------------------
Не знаешь кого спросить? - Спроси google! |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Так скачивайте, зарегистрировавшись.
-------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
cyberstream |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Не понимаю. Раз я выполнил вход и написал эти строки, значит я зарегестрирован? А форум так не думает. Отправьте на ящик, please.
--------------------
Не знаешь кого спросить? - Спроси google! |
|||
|
||||
cyberstream |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Ура! Всё работает!
while (1) { Application->ShowMessage(" ![]() ![]() Наберу 100 постов - не забуду ![]() Это сообщение отредактировал(а) cyberstream - 25.10.2006, 14:59 --------------------
Не знаешь кого спросить? - Спроси google! |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Надеюсь. А то пашешь-пашешь на Вас, а Вы вырастаете и забываете
![]() -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
cyberstream |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Ну... такое нам не грозит ... не скоро исчезнет с полки ваша "книга рецептов"
![]() --------------------
Не знаешь кого спросить? - Спроси google! |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Поддел, все таки, зараза
![]() ![]() -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
cyberstream |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 138 Регистрация: 7.9.2006 Репутация: 2 Всего: 4 |
Вы чего ?
![]() --------------------
Не знаешь кого спросить? - Спроси google! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |