Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.27;
Скачать: CL | DM;

Вниз

Как сделать default?   Найти похожие ветки 

 
Urn   (2003-01-17 20:21) [0]

Свои формы я создаю динамически.
И мне надо чтобы они появлялись с visible = false;
можно конечно через об. инспектор, но это не подходит.
Как это можно сделать в описании типа формы???
Urn


 
gsu ©   (2003-01-17 20:35) [1]

создай конструктор и напиши тама: visible = false


 
Urn   (2003-01-17 20:48) [2]

дык это дело создаётся динамически и дельфа ругается, что я,
мол, не создал объект а уже трогаю!!!


 
gsu ©   (2003-01-17 20:50) [3]

создай класс, в нем конструктор, в нем ...


 
oomneeq ©   (2003-01-18 03:03) [4]

формы, ты говоришь, у тебя "свои"
что это значит, тип у них свой (отличный от TForm)?
Если так, значит у тебя:
есть свой класс TSvoyForm, и dfm при нем (1)

Вот и выставь об инспектором в нем визибл фолс.
он ето в своем дфме запомнит.
и создавай себе потом динамически!
Нужны будут другие типы форм с тем же требованием - порождай их от TSvoyForm.

Ну а если (1) неверно, то сделай так, чтобы было верно :)

успехов.




 
MECHANIC ©   (2003-01-18 03:42) [5]

?/

Phorm2 := TPhorm2.Create(Selph);
Phorm2.Visible := False; {что эквив. Hide}
//до тех пор пока не вызывается :
//Phorm2.Show;
//никто твою форму не увидит.


 
Юрий Зотов ©   (2003-01-18 06:03) [6]

> Свои формы я создаю динамически.
> И мне надо чтобы они появлялись с visible = false;

Именно так они и будут появляться. Сами. Главное - не надо им мешать. То есть - ничего не надо делать.


> дык это дело создаётся динамически и дельфа ругается, что я,
> мол, не создал объект а уже трогаю!!!

Тогда это уже называется не динамическое, а супердинамическое создание.



 
Думкин ©   (2003-01-18 09:15) [7]

Главная форма появится в визибле все равно.
Можно и без *.dfm.
Создаешь класс от TForm - в его констркуторе CreateNew - после inherited - пишешь Hide. Формы создаешь этим конструктором.


> > дык это дело создаётся динамически и дельфа ругается,
> что я,
> > мол, не создал объект а уже трогаю!!!

А не трогай пока не создал - Assign(..)


 
Юрий Зотов ©   (2003-01-18 09:38) [8]

О, боже... снова...

НЕ НАДО НИКАКИХ КОНСТРУКТОРОВ, НИКАКИХ HIDE И НИКАКИХ ИЗМЕНЕНИЙ VISIBLE. ВООБЩЕ НИЧЕГО НЕ НАДО ТРОГАТЬ!!! ВООБЩЕ НИЧЕГО НЕ НАДО ДЕЛАТЬ!!!

По умолчанию свойство Visible у формы и так False (проверьте в Инспекторе Объектов). Поэтому после своего создания форма и так невидима, без всяких наших телодвижений. Видимой она становится ТОЛЬКО после вызова Show(Modal). Для главной формы этот вызов делается автоматически, а для остальных - нет. Чтобы и главная форма тоже оставалась невидимой, нужно в ее OnCreate написать:
Application.ShowMainForm := False.

Поэтому невидимая динамическая форма делается так:
Form2 := TForm2.Create(...);
и это ВСЁ!!! Форма есть, но невидима. Больше НИЧЕГО не нужно!!!


 
Думкин ©   (2003-01-18 09:44) [9]


> Юрий Зотов © (18.01.03 09:38)
> О, боже... снова...
> НЕ НАДО НИКАКИХ КОНСТРУКТОРОВ, НИКАКИХ HIDE И НИКАКИХ ИЗМЕНЕНИЙ
> нужно в ее OnCreate написать:
> Application.ShowMainForm := False.

Но ведь в onCreate лезем. А потом тема во многом идет в телептическом режиме, отсюда и ответы такие. Я формы делаю без *.dfm и от базовой - она сильно отличается от TForm, вот и предложил - поэтому обойдемся без нашатырного спирта.
P.S. Юрий Зотов © - вы здесь старожил и гуру - если считаете что нагрубил - извините.


 
Юрий Зотов ©   (2003-01-18 10:05) [10]

> Думкин © (18.01.03 09:44)

Да нет, конечно, никакой грубости и не было, и извиняться совершенно не за что. Уж, скорее мне, за излишние эмоции. Понимаете, просто уже надоели эти ветки с десятками глубокомысленных постингов по пустячному и очевидному вопросу, когда весь ответ можно дать одной фразой, и обсуждать просто нечего.

Человек задает вопрос:

> Свои формы я создаю динамически.
Значит, речь идет не о главной форме, и ни в какие OnCreate лезть не нужно.

> И мне надо чтобы они появлялись с visible = false;
А у них и так Visible = False, без нас.

Поэтому все просто - НИЧЕГО НЕ НАДО ДЕЛАТЬ. Вызвать конструктор - и все.

И вместо такого простого ответа начинаются разговоры о замещении конструктора, разводится флейм на тему выеденного яйца и пр. А Вы пишете - создавать формы через CreateNew! CreateNew не читает DFM, поэтому форма останется пустой. Для Вас это проходит (у Вас нет DFM), но ведь другим-то это явно не подойдет, зачем давать такие советы? Это же просто запутывание малоопытного человека получается. Значит, он задаст следующий вопрос - "CreateNew не работает, почему?". И пойдет дальнейший флейм, уже по поводу CreateNew, НИКАК НЕ ОТНОСЯЩЕГОСЯ К САБЖУ. Зачем?


 
Думкин ©   (2003-01-18 10:13) [11]


> Юрий Зотов © (18.01.03 10:05)

Ну флейм наверное на мне и закончится. :-)
Да, - не прав. <font color=red>Больше не буду</font>.


 
Думкин ©   (2003-01-18 10:20) [12]


> > Свои формы я создаю динамически.
> Значит, речь идет не о главной форме, и ни в какие OnCreate
> лезть не нужно.

Извините, Юрий - это не по сабжу - но ведь и главную форму можно создать динамически - у меня в одном проекте все формы такие.
Или я дурю?


 
Юрий Зотов ©   (2003-01-18 10:30) [13]

Можно, конечно, никто не мешает. Если программа этого требует, то так и нужно поступать. У меня вообще был проект, в котором DFM главной формы был СВОЙ У КАЖДОГО ЮЗЕРА. Естественно, все создавалось динамически.


 
Думкин ©   (2003-01-18 10:43) [14]

А ЮЗЕРНость каждого ЮЗЕра на каком уровне ловили?


 
Юрий Зотов ©   (2003-01-18 10:47) [15]

Это была БД. По логину, конечно.


 
Думкин ©   (2003-01-18 11:38) [16]

У нас не БД - мультимедиа приложения.
И тут просто бодались по этому поводу - определять по Current_User или все-таки дополнительно просить авторизоваться.


 
TTCustomDelphiMaster ©   (2003-01-18 11:52) [17]

А что значит "главную форму создать динамически"? Выбрать создание первой формы по условию или что-то более навороченное.


 
Юрий Зотов ©   (2003-01-18 12:24) [18]

Создать главную форму динамически - это значит в DPR строку
Application.CreateForm(MainForm, TMainForm)
переместить в другое место или вообще убрать и заменить другим кодом.

То есть, создавать главную форму не сразу, а тогда, когда это потребутся. И не так, как написала IDE, а так, как нужно.


 
TTCustomDelphiMaster ©   (2003-01-18 12:47) [19]

Так я и думал.


 
gsu ©   (2003-01-18 13:30) [20]

>> По умолчанию свойство Visible у формы и так False
Сори, забыл


 
Моджахед   (2003-01-19 01:40) [21]

Да, флейм изрядный. Ну-с и я своего добавлю.
И как раз в "Потрепаться" уедем, и слава Богу.



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

Текущий архив: 2003.01.27;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.012 c
1-86870
Master(self)
2003-01-20 06:39
2003.01.27
Формат архивов


3-86693
MorfeyCOOL
2003-01-09 11:51
2003.01.27
Картинка в Access 2000 (XP)


8-86968
Вадим СА
2002-10-07 23:43
2003.01.27
Как сделать графический анализатор, как у вин ампа??????!!!!!!!!!


1-86739
Elshad
2003-01-16 16:39
2003.01.27
Переход по TAB-у в MDIChild форме


14-87123
Deniska
2003-01-09 12:55
2003.01.27
Rave