![]() |
|
#1
|
||||
|
||||
![]() Всем доброе, люди пару повросов:
Вызываю дочернее окно MDI приложения: Код:
var KLJ: TKl_journal; begin KLJ := TKl_journal.Create(Application); Klj.WindowState:=wsMaximized; end; 1) Как узнать в последующем что окно созданно что бы не вызывать его ещё раз? 2) Если таким же методом вызывать 2 е дочернее окно то первое почемуто принимает WindowState:=wsNormal, подскажите как с этим бороться? |
#2
|
||||
|
||||
![]() Код:
type TForm1 = class(TForm) MainMenu1: TMainMenu; Add1: TMenuItem; Windows1: TMenuItem; N1: TMenuItem; AddwithCheck1: TMenuItem; procedure Add1Click(Sender: TObject); procedure AddwithCheck1Click(Sender: TObject); uses Unit2; procedure TForm1.Add1Click(Sender: TObject); begin with TForm2.Create(Application) do begin WindowState:=wsMaximized; Caption:=IntToStr(GetTickCount); Show; end; end; procedure TForm1.AddwithCheck1Click(Sender: TObject); begin if Application.FindComponent('Form2')<>nil then Exit; with TForm2.Create(Application) do begin WindowState:=wsMaximized; Caption:=IntToStr(GetTickCount); Show; end; end; http://data.cod.ru/126495 Пишу программы за еду. __________________ |
#3
|
||||
|
||||
![]() Спасибо, то что нужно, а по второму вопросу не подскажешь?
|
#4
|
||||
|
||||
![]() exe по ссылке запускал? не подтверждено это:
Цитата:
Пишу программы за еду. __________________ |
#5
|
||||
|
||||
![]() ой стоп немного соврал по пункту 2:
первое дочернее запускаем: Код:
var KLJ: TKl_journal; begin KLJ := TKl_journal.Create(Application); Klj.WindowState:=wsMaximized; end; а потом из 1 дочернего запускаем второе Код:
var KLJ: TKl_journal; begin KLJ := TKl_journal.Create(Application); Klj.WindowState:=wsNormal; end; |
#6
|
||||
|
||||
![]() имхо, все fsMDIChild имеют одно значение WindowState. можно через Constraints задать MinWidth и MinHeight.
Пишу программы за еду. __________________ |
#7
|
||||
|
||||
![]() Не путай человека, WindowState у всех присутствующих в данный момент MDI-ОКОН может быть разный.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#8
|
||||
|
||||
![]() Цитата:
Тогда как это сделать? |
#9
|
||||
|
||||
![]() Цитата:
подробней если можно, как я понимаю тут попытка выставить минимальные размеры окна, но как это сделать если расширение монитора у пользователей разное... выставлю одно значение а уних слишком маленькое окно, у других на экран не влезает.... Последний раз редактировалось Dead_Gigabit, 29.09.2011 в 09:13. |
#10
|
||||
|
||||
![]() согласен, не корректно выразился.
если хоть одно дочернее окно имеет состояние (визуальное) maximized, то и все остальные будут иметь maximized. даже те, которые были minimized. переключаясь между ними Ctrl+Tab увидим их все. т.е. невозможно сделать, к примеру, одно дочернее окно maximized, другое restores. думаю так будет правильней мысль высказана) кстати, такое наблюдается и в Excel (2007): делаешь один документ maximized, второй тоже становится maximized. одному restores, другой тоже становится restores. Пишу программы за еду. __________________ |
#11
|
||||
|
||||
![]() Дык как решить проблему она имеет решение или нет?
|
#12
|
||||
|
||||
![]() NumLock, если хоть одно дочернее окно имеет состояние (визуальное) maximized, то остальные могут иметь ЛЮБОЕ состояние и Excel в данном случае не показатель. При переключении по Ctrl-Tab, если одно дочернее окно maximized, то все последующие будут отображаться также maximized, но... если хоть одно окно таким образом не показать (через Ctrl-Tab), то оно сохранит свой первоначальный статус.
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |