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

Создание 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 вся ветка

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



Память: 0.46 MB
Время: 0.023 c
1-1082111343
Tornado
2004-04-16 14:29
2004.05.02
PageControl


14-1081855248
Layner
2004-04-13 15:20
2004.05.02
Что такое бизнес логика?


7-1079348527
Legran
2004-03-15 14:02
2004.05.02
Отслеживаем обращение к диску А:


7-1078597743
Makhanev A.S.
2004-03-06 21:29
2004.05.02
Thread Error...


1-1082207532
maxz
2004-04-17 17:12
2004.05.02
Как сделать, чтобы программа занимала меньше места в оперативке?




   Наверх