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
|
Пока не вижу кода и экрана — сказать трудно. Я вас предупреждал, что код "на скорую руку" и работает "почти правильно" — у меня он путал связь утопленной иконки с активным окном. |
|
Pan-SQL |
Отправлено: 01.12.2004, 14:57 |
|
Не зарегистрирован
|
а что необходимо изменить в данном коде, чтобы он работал как надо? Заранее большок спасибо. |
|
Pan-SQL |
Отправлено: 01.12.2004, 15:00 |
|
Не зарегистрирован
|
Ой! приношу извинение, не попал по нужной клавише. |
|
avc* |
Отправлено: 01.12.2004, 15:34 |
|
Не зарегистрирован
|
QUOTE |
а что необходимо изменить в данном коде, чтобы он работал как надо?
|
Как раз это вам и предстоит исследовать |
|
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 |
К сожалению я так и не смог добиться нужного результата.
|
Действительно — жизнь полна случайных свпадений.
Тема, не поднималась с 1 декабря. И тут мне, перед майскими, понадобилось сделать приложение с управлением формами через таскбар. Стоило завершить пилотный вариант и вижу вопрос опять поднялся сам (еще думал — поскать топик или нет, обащал ведь отчитаться ).
Сегодня — завтра нарисую статейку на тему "Управление GDI формами кнопками из taskbar" и вышлю. |
|
Pan-SQL |
Отправлено: 11.05.2005, 18:27 |
|
Не зарегистрирован
|
Жду статетейку. Почитаю. Может быть чему-нибудь в этой жизни научусь. |
|
Pan-SQL |
Отправлено: 16.05.2005, 12:23 |
|
Не зарегистрирован
|
Ну где же обещанная статейка? |
|
AVC |
Отправлено: 16.05.2005, 13:00 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
В стадии написания — катастрофически не хватает времени. Вот пока могу предложить иллюстрирующий её пример.
|
|
Pan-SQL |
Отправлено: 31.05.2005, 14:11 |
|
Не зарегистрирован
|
Спасибо за статейку. Но почему-то я никак не могу ее открыть. Еще вопрос: можно ли сделать собственную панель задач. т.е. как в 1С Предприятие? |
|
AVC |
Отправлено: 31.05.2005, 14:30 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE |
Но почему-то я никак не могу ее открыть
|
Почему? Обычный doc. На всякий случай посылаю в html.
QUOTE |
Еще вопрос: можно ли сделать собственную панель задач. т.е. как в 1С Предприятие?
|
Конечно можно (хотя я 1С не видел, но знаю, что это так ).
Подобный вопрос я уже не в первый раз вижу на форумАХ. Поищите.
|
|
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();
}
Запустил и увидел: ВСЕ работет именно так, как вам хочется. И, главное, безо всяких усилий с моей стороны.
В 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 |
|
Не зарегистрирован
|
Вышлите небольшой тестовый примерчик. Что-то я никак не врубаюсь. Заранее благодарен!!!!!!!!!!!!!! |
|