Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Application.CreateForm [D5, Win2k]


Страницы:   1 2

Alexandr ©   (2004-07-12 14:03:00) 

1)
есть форма.
Она используется двумя приложениями.
Но в одном приложении она fsMDIchild а в другом fsNormal
как это можно разрулить в коде?
Ну не хочет MDIChildForm создаваться есть нет MDIForm а MDIForm нету в том приложении. Там все формы MDINormal
2)
создается форма с помощью Application.CreateForm (а как еще по-другому создать главную форму?)
А если у меня эта класс этой формы не наследник Tform а наследник моего класса, который в свою очередь наследник Tform
и метод create не обычный  
constructor Create(AOwner: TComponent);
а имеет еще несколько входных параметров? Как мне при этом задать эти параметры?
И еще раз, чтоб уж в одном месте было...
А как мне для создаваемой формы задать FormStyle программно, а не в дизайнере? (см. п.1)


Alexandr   (2004-07-13 07:45:00) [1]

pagecontrol много ресурсов заберет.
Надо все равно динамически управлять контролами при переключении закладок.


MadGhost   (2004-07-12 21:36:00) [2]

начал писать программу как MDI ибо там много разных формочек открывать надобно было, посмотрел посмотрел я на это убожество, и отказался, посмотрел в сторону PageControl и его интерфейс как у мастеров. Все в одной форме :) тока вот убрать выпуклость PageControl'a :( но это уже совсем другая история


Snip   (2004-07-12 15:48:00) [3]

а ну да перепутал в  дельфях там плавающие панели сделано... извеняюсь за глупость....
Но тогда почему ворд и ексель делают мдайными? это что типа стиль?


Alexandr   (2004-07-12 15:22:00) [4]

так. Разобрался.
В dfm должно быть fsNormal иначе сразу при create форма будет visible. а так делать ненадо. Ибо негде писать код, который перед visible должен пройти.
После create меняем FormStyle на нужный.
Если нужный fsMDIChild то форма автоматически становится visible это правильно. Это нормально. На то она и fsMDiChild. А то, что надо сделать перед visible пишем перед FormStyle:=fsMDIChild
Если нужный dsNormal то как обычно. Сначала create потом ShowModal например.
Ладно это решили. Хорошо.
теперь вот это чего-то без внимания осталось в первоначальном вопросе.

создается форма с помощью Application.CreateForm (а как еще по-другому создать главную форму?)
А если у меня эта класс этой формы не наследник Tform а наследник моего класса, который в свою очередь наследник Tform
и метод create не обычный  
constructor Create(AOwner: TComponent);
а имеет еще несколько входных параметров? Как мне при этом задать эти параметры?


Anatoly Podgoretsky   (2004-07-12 15:01:00) [5]

Snip ©   (12.07.04 14:55) [19]
Это где ты там увидел MDI


Alexandr   (2004-07-12 15:01:00) [6]

так. Понятно. Хорошо.
Теперь будем думать.
Искать.
А SDI такой, как в delphi обычные юзеры могут не понять.


Reindeer Moss Eater   (2004-07-12 14:56:00) [7]

Не надо бояться менять стиль на рантайме.
Хелп всего лишь не советует менять стиль во время работы приложения. То есть от случая когда одна и та же форма первые полчаса работы программы является fsMDIChild, а вторые fsNormal.

Это замечание касается интерфейса приложения, а не смены самого свойства .


Snip   (2004-07-12 14:55:00) [8]

но интересно почему Delphi 8 сделана в стиле MDI?


Snip   (2004-07-12 14:54:00) [9]

Вместо него SDI, это типа как делфя построена...


Alexandr   (2004-07-12 14:54:00) [10]

не... я наоборот первый раз mdi использую, и подумал, что оно в этом приложении в тему.
Но еще не поздо передумать. :)


Alexandr   (2004-07-12 14:53:00) [11]


> Reindeer Moss Eater ©   (12.07.04 14:50) [14]
> Если уж на то пошло, то начиная с некоторго времени вообще
> is not advisable создавать MDI приложения.

о, а чего ж теперь вместо него?
Ладно. Наметки есть. Теперь буду пробовать...


Snip   (2004-07-12 14:51:00) [12]


> Если уж на то пошло, то начиная с некоторго времени вообще
> is not advisable создавать MDI приложения.

я тебя полностью поддерживаю... но некоторые люди познакомившиеся тока с MDI думают что это круто.... :))


Reindeer Moss Eater   (2004-07-12 14:50:00) [13]

Если уж на то пошло, то начиная с некоторго времени вообще is not advisable создавать MDI приложения.


Snip   (2004-07-12 14:48:00) [14]

я думаю
> Note: It is not advisable to change FormStyle at runtime.
>
было написано из за того если форма уже живет, то конечно менять ее стиль будет конкретной ошибкой...


Reindeer Moss Eater   (2004-07-12 14:47:00) [15]

Тем более, что даже изменив свойство в DFM, реально свойство меняется в Loaded.
То есть в том же самом рантайме.


Reindeer Moss Eater   (2004-07-12 14:45:00) [16]

Ну и кроме того, почему все же тебя испугала фраза It is not advisable ...?


Reindeer Moss Eater   (2004-07-12 14:41:00) [17]

Одна форма fsNormal.
Делаем наследника в котором ничего не трогаем кроме FormStyle.

В одном проекте используем первую, а во втором вторую (не забыв добавить в uses первую)


Snip   (2004-07-12 14:39:00) [18]

что тут напрягать, создаешь еще один экземпляр а предком делаешь ту форму.... меняешь FormStyle и все...


Alexandr   (2004-07-12 14:32:00) [19]

нука нука...
вот это уже поподробнее...
Это как? Это ж надо дизайнер как-то напрячь...


Reindeer Moss Eater   (2004-07-12 14:29:00) [20]

Тогда наследуйся от этой формы.
И измени свойство в наследнике


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо