Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];

Вниз

Как сделать 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.011 c
1-86850
blackman
2003-01-19 11:46
2003.01.27
Как узнать автора файла документа ?


14-87064
Tsr
2003-01-07 21:55
2003.01.27
Как добавить в TTreeView доп. параметр ?


3-86639
mao
2003-01-07 18:48
2003.01.27
Проблема с кодировкой при чтении записей из dbf-файла в разных ОС


14-87124
Оливейра
2003-01-09 20:54
2003.01.27
Как же конструируется и инициализируется объект в Object Pascal


14-87102
Карлсон
2003-01-09 13:22
2003.01.27
как побороть гадов (ужо человеческих)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский