Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2013, 19:43   #1
st_yak
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 18
По умолчанию Открыть форму в отдельном окне

Добрый день!

Возникла необходимость открыть форму отдельно от основного приложения.
То есть. Создаем новое приложение. Добавляем еще одну форму. На Form1 кидаем кнопку. Пишем обработчик.
Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TForm2 *ff = new TForm2(this);
  ff->Show();
}
Форма открывается, но открывается как бы в том же окне.
В другом приложении нужно создавать окна что бы была возможность переходить по ALT-Tab или выбором мышкой.

Подскажите пожалуйста как такое реализовать?
Заранее спасибо.

Последний раз редактировалось Stilet; 21.12.2013 в 19:49.
st_yak вне форума Ответить с цитированием
Старый 21.12.2013, 19:53   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Так не получится. Формы создаваемые в рамках одного и того же процесса ему же и подчиняются.
Как вариант: Application->CreateForm(TForm2,ff);
Но не факт что при этом форма станет отдельно в списке окон диспетчера в винде.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.12.2013, 20:07   #3
st_yak
Пользователь
 
Регистрация: 20.07.2013
Сообщений: 18
По умолчанию

Не помогает.

Application->CreateForm(TForm2,ff);
Такая конструкция добавляется в проекта автоматически когда создаем новую форму, и как я понял создает экземпляр формы сразу.

И к ней можно обратится не используя new, а написав просто ff->Show()
st_yak вне форума Ответить с цитированием
Старый 21.12.2013, 21:34   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Верно. Насчет "непомогает" я предупреждал. Как по мне этот механизм винды так просто не перебить.
Хотя... Попробуй переопределить для формы метод CreateParams
В нем напиши что-то типа
Код:
Params.ExStyle = Params.ExStyle || WS_Ex_AppWindow;
И еще перед ним ставится inherited CreateParams(Params); (Это в дельфийском, уж прости, Си знаю поверхностно).
Возможно это поможет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.01.2014, 15:36   #5
mish_k98
Пользователь
 
Регистрация: 10.01.2014
Сообщений: 16
По умолчанию

создай отдельный проект.а потом просто по shellexecute открывай свою другую прогу(форму)
mish_k98 вне форума Ответить с цитированием
Старый 10.01.2014, 17:18   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
создай отдельный проект.
А если взаимосвязь нужна между формами? Сообщения кидать предложишь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.01.2014, 19:35   #7
mish_k98
Пользователь
 
Регистрация: 10.01.2014
Сообщений: 16
По умолчанию

в файл можно
mish_k98 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли открыть форму access в delphi...таблицы подключаются....а форму можно подключить?? Анна1217 Помощь студентам 3 06.04.2012 07:56
Открыть страницу в текущем окне WebBrowser kroŧ Работа с сетью в Delphi 1 21.09.2010 05:26
Можно ли открыть сводную таблицу в отдельном книге ( не в отдельном листе)? Aqil_f Microsoft Office Excel 1 13.09.2010 10:44