Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];

Вниз

Проблема с максимизацией MDIChild   Найти похожие ветки 

 
nOvell&K   (2006-03-06 12:28) [0]

Есть MDIChild окно с ListView, Splitter и Memo. У ListView Align = caClient и т.д. При разворачивании/изменении окна все ОК. Но вот если окон 2 и одно из них развернуть а потом закрыть - второе тоже разворачивается. Как пишут в sdk:

If an MDI client window receives any message that changes the activation of its child windows while the active MDI child window is maximized, Windows restores the active child window and maximizes the newly activated child window.

Так вот после этого Control"ы оставшегося окна не меняют своих размеров, пока не будут изменены размеры окна или не щелкнули на Splitter. Как заставить их правильно реагировать на такую максимизацию окна?


 
Владимир Кладов   (2006-03-06 12:39) [1]

Я про MDI сразу говорю: если вы не супер-мастер, и у вас нет опыта розработки MDI-приложений на уровне читого API, то в KOL лучше и не пытаться. Все равно будет глючить. А если есть такой опыт, то оч. биг просьба: помочь нам его, т.е. MDI - довести до ума.


 
nOvell&K   (2006-03-06 15:19) [2]

Проблема решилась комментированием строки:
if not C.ToBeVisible then continue;
в procedure AlignChildrenProc( Sender: PObj );

Видимо, когда система максимизирует бывшее скрытым MDI окно, его child"ы имеют поголовно ToBeVisible = false; И я чего-то не понимаю, почему. Может теперь что-нибудь подскажите?


 
Vladimir Kladov   (2006-03-06 16:12) [3]

Так уже теплее. ToBeVisible используется в KOL чтобы различить контролы, которые видны вместе с родителями от тех, что видны сами по себе, когда видны их родители. Хм. Ну и сказал.

Короче Visible = то же что в VCL, но если родитель не видимый, то Visible ни о чем не говорит. ToBeVisible = контрол виден и видны все его родители. (Хотя опять же он может быть заслонен, но это уже вообще никого не волнует, главное, что контрол учитывается при выравнивании).

Если эта штука гадит для MDI, то возможно я просто не предусмтрел или перемудрил с использованием ToBeVisible. Что за случай, от этого зависит: или надо переделать ToBeVisible, чтобы он учел дечрность MDI, или наоборот использовать в этом месте просто Visible (вряд ли надо просто комментировать).


 
nOvell&K   (2006-03-06 19:47) [4]

Работает и с C.fVisible  и с C.Visible, но в обоих случиях криво строятся Label"ы на одной из панелей MDIChild окна. А вот с полностью закомментированным условием все вроде OK...



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

Форум: "KOL";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.063 c
15-1164460328
ZeroDivide
2006-11-25 16:12
2006.12.24
Еду в Москву учиться.


4-1155908277
apic
2006-08-18 17:37
2006.12.24
Серийные номера


15-1163681010
sergey888
2006-11-16 15:43
2006.12.24
Delphi уже относится к "другим" языкам программирования


3-1160656457
svt
2006-10-12 16:34
2006.12.24
Подскажите пожайлусата как исправиь ошибку в запросе


2-1165389595
PaDi6@h
2006-12-06 10:19
2006.12.24
подключение к DB SQL Server





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский