![]() |
|
![]() ![]() ![]() |
|
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 не создают лополнительных кнопок на таскбаре. Кстати, может у Вас с этой строчкой что-то не впорядке. Например, она пустая ? -------------------- С уважением, Вячеслав Ермолаев |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++ 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. |