Вниз
Скачать: CL | DM;

MDI-формы вопрос такой........   Найти похожие ветки 

← →
Term ©   (2004-04-19 16:46) [0]

Есть две MDI-формы, одна главная, вторая динамически создаётся, проблема в том что после создания второй, первая меняет свой WindowState если она была максимизированна, как это победить


← →
KSergey ©   (2004-04-19 16:51) [1]

В смысле вторая при этом становится не wsMaximized? В общем случае - это особенность работы MDI-интерфейса: либо все дочерние - максимиированы, либо все - нет.
думаю, поможет

SecondForm.WindowState := FirstForm.WindowState при создании


← →
Term ©   (2004-04-19 17:03) [2]

ну да первая wsNormal, после закрытия второй, а вторая она сразу растягивается в wsMaximized после создания


← →
WebErr ©   (2004-04-19 17:08) [3]


> Term ©   (19.04.04 17:03) [2]

Или я ничего не понимаю, или давайте по русски


← →
Term ©   (2004-04-19 17:13) [4]

так постараюсь по русски :))))

первая MDI-child форма имеет wsMaximized, далее я создаю вторую
MDI-child форму, она также как и первая сразу становится wsMaximized, после закрытия и уничтожения второй первая становится wsNormal, а хочется чтобы state первой формы не менялся.


← →
Term ©   (2004-04-19 17:28) [5]

народ ктонить есть выход тут или нет?


← →
WebErr ©   (2004-04-19 17:35) [6]

О, это как раз проблема, которая так недавно доставала моего босса! В VCL такого property нет! А что, разве в событии OnClose первой формы нельзя сотворить всё, что угодно со второй, например SecondForm.WindowState := wsMaximized; ?


← →
Term ©   (2004-04-19 17:47) [7]

можно я так и сделал в начале, но просто когда форма каждый раз меняет размер наврядли понравится заказчику.


← →
nikkie ©   (2004-04-19 19:56) [8]

>Term
почему ни у кого больше нет таких проблем? может у тебя второе окошко не закрывается, а сворачивается? в FormClose у тебя что написано?

>KSergey
>это особенность работы MDI-интерфейса: либо все дочерние - максимиированы, либо все - нет.
на самом деле ни фига не так, все сложнее.


← →
Игорь Шевченко ©   (2004-04-19 21:51) [9]


> на самом деле ни фига не так, все сложнее


А как на самом деле ?


← →
nikkie ©   (2004-04-19 22:43) [10]

>А как на самом деле ?
на самом деле, только один MDIChild находится в maximized состоянии, все осталные - в normal. когда переключаешься между окнами - переднее окно переводится в normal, нужное окно выдвигается вперед и переводится в maximized. нетрудно убедиться в этом с помощью spy++. последствия такой реализации - при переключении между окнами постоянно происходят ресайзы, что может иметь неприятные последствия.


← →
Игорь Шевченко ©   (2004-04-19 23:50) [11]

[10] nikkie ©   (19.04.04 22:43)

Угу. Spy++ показывает, что при переключении окну посылаются сообщения WM_SIZE с параметром SIZE_MAXIMIZED или SIZE_RESTORED.

Век живи - век учись,
спасибо за науку (с) ИИ



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.04 c
1-1080113098
cult
2004-03-24 10:24
2004.04.11
OFF: программы для просмотра и сравнения файлов


14-1079761597
isko
2004-03-20 08:46
2004.04.11
все заплатки и обновления...


1-1080304501
GUEST_01234
2004-03-26 15:35
2004.04.11
Замена плюсиков в TreeView


1-1082696065
New_Delpher
2004-04-23 08:54
2004.04.11
Подскажите ссылки на статьи как создавать мастера в Delphi.


3-1081879329
3APA3A
2004-04-13 22:02
2004.04.11
Создание DATABASE в FireBird...




   Наверх