Форум: "Основная";
Текущий архив: 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.49 MB
Время: 0.01 c