Вниз
Скачать: 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.036 c
4-1076071430
dik
2004-02-06 15:43
2004.04.11
TRichEdit


1-1082920519
TALLA
2004-04-25 23:15
2004.04.11
переделка с asm на Delphi :(


1-1082384472
pantel
2004-04-19 18:21
2004.04.11
Написание Form Designer а


7-1076246345
sadretro
2004-02-08 16:19
2004.04.11
как програмно можно зашарить доступ к папке


3-1081847949
Rych
2004-04-13 13:19
2004.04.11
Как проверить присутствует-ли занчение в TDataSet ?




   Наверх