Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

И снова MDI интерфейс


RaZEr ©   (2002-05-08 07:40:00) 

Ситуация следующая :

- Есть много MDI Child форм
- Все они с windowstyle wsMaximized

Нужно чтобы по нажатию на определенную кнопку становилась активной (поверх всех) заданная форма .

PS: Я пробовал и Update и Show и традиционный BringToTop, но во всех случаях формы теряли свой wsMaximized :( ... из-за чего приходилось разворачивать формы (В XP это мерцание, а в 98 - вообще лучше не вспоминать что)


RaZEr   (2002-05-08 17:35:00) [1]

Блин, Багланд :) Еслиб вы знали в чем было дело :) MyForm.BorderIcons :) . Иными словами нельзя отключать некоторые из них (systemmenu и maximize) . Маразм ...

Если не отключать перечисленные BorderIcons, то работает обычный BringToFront . Напрашивается вопрос : как отключить BorderIcons не отключая их ?! Т.е. чтобы они были, но их небыло видно или они не работали .

Да и вообще пре переключении всеми перечисленными методами заметно мерцание :( а я уверен что можно зделать и без него . Плюс ко всему первое отображение MDI Child формы происходит с ее заметным развертыванием .


Lmatveev   (2002-05-08 12:05:00) [2]

Я использую две функции подряд:

SetForegroundWindow(Form.Handle);
BringWindowToTop(Form.Handle);


Sasha M.   (2002-05-08 10:26:00) [3]

А этот вариант, может будет проще?

begin
fmForm.WindowState:=wsNormal;
BringWindowToTop(fmFORM.Handle);
end


Alx2   (2002-05-08 08:56:00) [4]

А вот это сработало!

SetWindowPos({Хэндл нужного MDIchildа},HWND_TOP,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE or SWP_NOCOPYBITS);


Alx2   (2002-05-08 08:40:00) [5]

Нет, не катит... Тоже все перерисовывается :(


Alx2   (2002-05-08 08:02:00) [6]

Попробуй посылать нужному MDIChild сообщение WM_MDIACTIVATE


Наверх

Титульная страница Поиск, карта сайта Написать письмо