Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Свёртывание в панель задач динам. формы, проблема 
:(
    Опции темы
Sergio
Дата 30.4.2007, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

Репутация: 1
Всего: 1



Здраствуйте. Вот у меня есть динам. форма , которая появляется в панели задач:
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
        TForm* Forma = new TForm(Application, 1);
        Forma->Width = 320;
        Forma->Height = 365;
        Forma->Left = Form1->Left + Form1->Width/2 - (Forma->Width/2);
        Forma->Top = Form1->Top + Form1->Height/2 - (Forma->Height/2);
        Forma->BorderStyle = bsSingle;
        Forma->BorderIcons = TBorderIcons() <<biSystemMenu <<biMinimize;
        Forma->Caption = "Dialog with: ";
        HANDLE Handle = Forma;
        SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) |WS_EX_APPWINDOW);
        Forma->Show();
}

Но у меня появилась проблема: когда я свёртываю основную форму(Form1) динамическая тоже свёртывается и исчезает с панели задач smile Как решить эту проблему?
Зарание спасибо.
PM MAIL ICQ   Вверх
Klin
Дата 30.4.2007, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Можно ее скрывать иначе:
Код

     ShowWindow(Form1->Handle,SW_HIDE);




--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Klin
Дата 30.4.2007, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



А для пущей радости smile можно сделать так:
Код

 void __fastcall TForm1::MyHide(TObject *Sender)
 { 
 ShowWindow(Form1->Handle,SW_SHOW);
 ShowWindow(Application->Handle,SW_SHOW);
 }
 . . . . . . .
 ShowWindow(Form1->Handle,SW_HIDE);
 ShowWindow(Application->Handle,SW_HIDE);
 Forma->OnHide = MyHide;
 . . . . . . .


Будет так. Главная форма (вместе с заголовком в панели задач) пропадает и появляется динамическая форма. И при ее закрытии (не при минизации) она будет закрываться, а главная вновь появляться.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
ama_kid
Дата 2.5.2007, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 10
Всего: 95



Цитата(Sergio @  30.4.2007,  21:24 Найти цитируемый пост)
Но у меня появилась проблема: когда я свёртываю основную форму(Form1) динамическая тоже свёртывается и исчезает с панели задач  Как решить эту проблему?
Она тоже свертывается потому, что родительская форма свернулась... Можешь сделать так:
Код
 TForm* Forma = new TForm((void *)GetDesktopWindow());



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Pendalf
Дата 3.5.2007, 05:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 14.4.2007

Репутация: нет
Всего: нет



Цитата(ama_kid @ 2.5.2007,  17:44)
Она тоже свертывается потому, что родительская форма свернулась... Можешь сделать так:
Код
 TForm* Forma = new TForm((void *)GetDesktopWindow());


Так не работает. Пишет:
Код

E2285: Could not find a match for 'TForm::TForm(void *)'

PM MAIL   Вверх
HappyLife
Дата 3.5.2007, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: 4
Всего: 8



А так?
Код

TForm* Forma = new TForm((HWND)GetDesktopWindow());

PM MAIL   Вверх
Klin
Дата 3.5.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(Pendalf @  3.5.2007,  06:50 Найти цитируемый пост)
Так не работает. Пишет:

Все работает:
и так:
Код

 TForm* Forma = new TForm((void*)GetDesktopWindow());

,или так:
Код

 TForm* Forma = new TForm((HWND)GetDesktopWindow());

, но можно и так:
Код

 TForm* Forma = new TForm(GetDesktopWindow());


Но почему-то тормозит, будем разбираться smile

Это сообщение отредактировал(а) Klin - 3.5.2007, 13:04


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0453 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.