Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизСоздание MDIChild-формы в фоне (не выводя наверх). Найти похожие ветки
← →
alexvir © (2004-04-05 12:34) [0]Господа коллеги, помогите с такой проблемой. есть MDI-приложение. нужно чтобы MDIChild-формы создавались в фоне, а не вылазили поверх уже открытых?
Дело в том, что форма при операторе TFormChild.Create(Self) уже выводится на экран, а предыдущая открытая теряет фокус, даже если потом созданную я отправляю в фон.
Заранее надеюсь на помощь...
Свами Фдуч МшК.
← →
sir John © (2004-04-05 13:21) [1]может быть пойти по такому алгоритму:
1. получить Handle окна, на котором фокус
2. Создать новое окно. Свернуть его.
3. По полученному ранее Hanlde найти открытое окно и передать ему фокус
← →
Stas © (2004-04-05 13:23) [2]А ты ее создавай с formstyle:=Normal, а когда нужно ее показать меняй это свойство на formstyle:=fsMdiChild
← →
alexvir © (2004-04-08 08:59) [3]спасибо за ответы. вобщем-то я был на полпути реализации метода, предложенного Stas, только подумал, что должен быть более рациональный метод. в итоге сделал - и получил результат, но все равно, когда форма переводится из FormStyle=fsNormal в fsMDIChild - возникают мерцания при перерисовке и максимизации окна... это и смущает. но главная цель решена.
← →
sir John © (2004-04-08 10:35) [4]Насколько я помню, мерцание - это стандартный баг(?) MDI приложений. Эта тема уже поднималась на форуме. Поищи в архивах. Помоему даже предлагались варианты решения этой проблемы
← →
alexvir © (2004-04-14 09:23) [5]To sir John>>>>>
может ты мне найдешь этот пример? и где тут архив, чей-то я его не наблюдаю?
← →
AlexSV © (2004-04-14 10:33) [6]прописываем:
procedure TMDIChildForm.FormCreate(Sender: TObject);
begin
Exclude(FFormState, fsVisible);
end;
а там где необходимо:
...
MDIChild := TMDIChildFrm.Create(Self);
MDIChild.Visible := True;
...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c