C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

стр.: (3) < 1 [2] 3 >
MDI-приложение
avc*
Отправлено: 30.11.2004, 13:39


Не зарегистрирован







QUOTE
Первая форма (Form1) имеет пункт меню «Открыть» и команды — «Форма1», «Форма2» и «Форма3» соответственно

Имелось ввиду, что Form1 кроме пунктов меню "Открыть" и команд могла бы делать еще что-то полезное так как Форма2 и Форма3 работают паралельнос с Form1.
Pan-SQL
Отправлено: 30.11.2004, 14:49


Не зарегистрирован







Первая форма пока еще ничего не делает. Может быть поэтому я не могу ее активизировать щелчком мыши по пиктограмме.
AVC
Отправлено: 30.11.2004, 17:51


Ветеран

Группа: Модератор
Сообщений: 1583



Пока не вижу кода и экрана — сказать трудно. Я вас предупреждал, что код "на скорую руку" и работает "почти правильно" — у меня он путал связь утопленной иконки с активным окном. smile.gif
Pan-SQL
Отправлено: 01.12.2004, 14:57


Не зарегистрирован







а что необходимо изменить в данном коде, чтобы он работал как надо? Заранее большок спасибо.
Pan-SQL
Отправлено: 01.12.2004, 15:00


Не зарегистрирован







Ой! приношу извинение, не попал по нужной клавише.
avc*
Отправлено: 01.12.2004, 15:34


Не зарегистрирован







QUOTE

а что необходимо изменить в данном коде, чтобы он работал как надо?

Как раз это вам и предстоит исследовать smile.gif
Pan-SQL
Отправлено: 01.12.2004, 15:47


Не зарегистрирован







Мне самому будет сложновато, может дадите какую-нибудь подсказочку?
avc*
Отправлено: 01.12.2004, 16:26


Не зарегистрирован







Нет. Я же писал (или нет?) сам так не работю. Будет время — поисследую, сообщю.
Pan-SQL
Отправлено: 08.05.2005, 23:48


Не зарегистрирован







К сожалению я так и не смог добиться нужного результата. Да! Жизнь не халва!!!!!!!!!!!!!!
AVC
Отправлено: 10.05.2005, 08:09


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

К сожалению я так и не смог добиться нужного результата.

Действительно — жизнь полна случайных свпадений. smile.gif
Тема, не поднималась с 1 декабря. И тут мне, перед майскими, понадобилось сделать приложение с управлением формами через таскбар. Стоило завершить пилотный вариант и вижу вопрос опять поднялся сам (еще думал — поскать топик или нет, обащал ведь отчитаться smile.gif ).
Сегодня — завтра нарисую статейку на тему "Управление GDI формами кнопками из taskbar" и вышлю.
Pan-SQL
Отправлено: 11.05.2005, 18:27


Не зарегистрирован







Жду статетейку. Почитаю. Может быть чему-нибудь в этой жизни научусь.
Pan-SQL
Отправлено: 16.05.2005, 12:23


Не зарегистрирован







Ну где же обещанная статейка?
AVC
Отправлено: 16.05.2005, 13:00


Ветеран

Группа: Модератор
Сообщений: 1583



В стадии написания — катастрофически не хватает времени. Вот пока могу предложить иллюстрирующий её пример.


User Attached Image Скачать файл
tbardemo.rar


Pan-SQL
Отправлено: 31.05.2005, 14:11


Не зарегистрирован







Спасибо за статейку. Но почему-то я никак не могу ее открыть. Еще вопрос: можно ли сделать собственную панель задач. т.е. как в 1С Предприятие?
AVC
Отправлено: 31.05.2005, 14:30


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

Но почему-то я никак не могу ее открыть

Почему? Обычный doc. На всякий случай посылаю в html.

QUOTE

Еще вопрос: можно ли сделать собственную панель задач. т.е. как в 1С Предприятие?

Конечно можно (хотя я 1С не видел, но знаю, что это так smile.gif ).
Подобный вопрос я уже не в первый раз вижу на форумАХ. Поищите.
Pan-SQL
Отправлено: 05.07.2005, 11:29


Не зарегистрирован







Можно ключевое слово для поиска или адрес одного из форумов
Pan-SQL
Отправлено: 05.07.2005, 11:30


Не зарегистрирован







Все работает нормально, но вот возникла следующая проблема. Допустим, открыто 3 формы (Form1, Form2 и Form3). Соответственно на панели задач имеются 3 пиктограммы (пиктограмма проги (главная) и пиктограммы 2 следующих форм — Form2 и Form3). Имеется и 4 форма (Form4), она является модальной и открывается как окно диалога путем нажатия на кнопку, которая находится на 3 форме. В момент открытия 4 формы активизируется главная пиктограмма. Возможно ли построить приложение таким образом, чтобы в момент открытия 4 формы пиктограмма 3 формы оставалась активной. И возможно ли в момент, когда открыта 4 форма, запретить переход от одной форме к другой щелчком мышки по пиктограммам. Форма 4 не имеет пиктограммы (не использует CreateParams).
Заранее благодарен!
AVC
Отправлено: 05.07.2005, 12:53


Ветеран

Группа: Модератор
Сообщений: 1583



В тестовом проекте, который я вам высылал сделал следующее:
Добавил к проекту форму (FModal)
в FModal.cpp написал
PACKAGE void __fastcall MyModal (void)
{
TF_Modal *frm = new TF_Modal(Application);
try { frm->ShowModal(); }
__finally { delete frm; }
}

В форме для канала (FItem) повесил кнопку и в обработчик написал
extern PACKAGE void __fastcall MyModal (void);
//--
void __fastcall TF_Item::Button1Click(TObject *Sender)
{
MyModal();
}

Запустил и увидел: ВСЕ работет именно так, как вам хочется. И, главное, безо всяких усилий с моей стороны. smile.gif
В TaskBar подсвечена именно та FItem из которой была запущена Modal,
пока modal не закрыта переключиться на другую форму нельзя.
Если чего нет так — сообщите.

Отредактировано AVC — 05/07/2005, 11:54
Pan-SQL
Отправлено: 09.07.2005, 21:49


Не зарегистрирован







Я так делал, никаких изменений нет. По прежнему подсвечиватся главная форма и можно переходить по формам при открытом модальном окне. Может я что-то забыл?
AVC
Отправлено: 11.07.2005, 09:40


Ветеран

Группа: Модератор
Сообщений: 1583



Может. На всякий случай посылаю вам проект.
Pan-SQL
Отправлено: 20.07.2005, 17:47


Не зарегистрирован







Я получил ваш проект. Хочу сказать, что там все работает не так как мне хочется. При открытии модального окна в панели задач подсвечивается именно та форма, из которой оно вызвано, только вот переключаться между формами можно даже при открытом модальном окне
AVC
Отправлено: 25.07.2005, 16:45


Ветеран

Группа: Модератор
Сообщений: 1583



Простите, что долго не отвечал — был занят.
> только вот переключаться между формами можно
> даже при открытом модальном окне
Да из TaskBar.
Вот такая получилась заплатка для этого случая
CODE

В WndProc форм открываемых Show написать
case WM_SYSCOMMAND:
{  if (Screen->Forms[0]->FormState.Contains(fsModal))
    {  SetForegroundWindow(Screen->Forms[0]->Handle);
       break;
    }
...

В WndProc форм открываемых ShowModal написать
if (Message.Msg == WM_ACTIVATEAPP && bool(Message.WParam))
   SetForegroundWindow(this->Handle);
TForm::WndProc(Message);
Pan-SQL
Отправлено: 31.07.2005, 18:04


Не зарегистрирован







Возможно ли построить приложение таким образом, чтобы при открытой модальной форме были доступны все открытые формы, кроме той, из которой вызвана модальная форма
AVC
Отправлено: 01.08.2005, 08:33


Ветеран

Группа: Модератор
Сообщений: 1583



Это противоречит модальности.
Чтобы обойти — первое, что приходит в голову это открывать не модально, а в окне родителе при получении фокуса переходить на это псевдо-модальное окно. Вариант 2 — отказаться от vcl и управлять окнами через winapi. Но это все на уровне рассуждений.
Pan-SQL
  Отправлено: 18.08.2005, 18:33


Не зарегистрирован







Можно первый вариант более подробно. В окне родителя — имеется в виду MDI?
AVC
Отправлено: 19.08.2005, 16:56


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE
В окне родителя — имеется в виду MDI?

Нет. GDI.
Если вы обратили внимание, то речь везде шла только о gdi окнах.
Pan-SQL
Отправлено: 21.08.2005, 19:17


Не зарегистрирован







Если Вам не сложно, можно выслать небольшой примерчик как открыть форму в окне родителе
AVC
Отправлено: 22.08.2005, 08:30


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

можно выслать небольшой примерчик как открыть форму в окне родителе

Первое — не "в окне" а "из окна". Окном родителем я называю ту форму из которой инициирована вторичная форма. Пример может быть таким:
...TForm1::...
TForm2 *frm = new TForm2(Application);
frm->Show();
А если вынести указатель на экземпляр Form2 за пределы функции, то через него любой метод Form1 сможет управлять Form2, а если....

PS.
В моем сообщении от 01/08/2005, 07:33 "окно родитель" относилось не к глаголу "открывать", а к глаголу "переходить"

Отредактировано AVC — 22/08/2005, 07:34
GIZMO
Отправлено: 22.08.2005, 09:40


Машинист паровоза

Группа: Участник
Сообщений: 174



QUOTE (Pan-SQL @ 05/07/2005, 11:29)
Можно ключевое слово для поиска или адрес одного из форумов

SHAppBarMessage
Pan-SQL
Отправлено: 25.08.2005, 20:00


Не зарегистрирован







Вышлите небольшой тестовый примерчик. Что-то я никак не врубаюсь. Заранее благодарен!!!!!!!!!!!!!!
стр.: (3) < 1 [2] 3 >
Вернуться в Вопросы программирования в C++Builder